[問題] 關於OpenGL
glBegin(GL_TRIANGLES);
GLfloat v[3], u[3], n[3];
.......
glNormal3f(v[0],v[1],v[2]); // 指定A點的法向量
glVertex3f(x,y,z); // 指定A點
glNormal3f(n[0],n[1],n[2]); // 指定B點的法向量
glVertex3f(x',y',z'); // 指定B點
glNormal3f(u[0],u[1],u[2]); // 指定C點的法向量
glVertex3f(x",y",z"); // 指定C點
.......
glEnd();
以上的程式只是為了把問題說清楚一點
那些變數都和題目無關
在有打光的情況下 如果這樣寫的話 OpenGL實際上做的事情是?
1. 先依照這三個點的法向量算出他們個別的光強(By local reflection model)
再由這三個頂點的光強來內插出三角形內部像素的光強 然後畫出整個三角形
(Gouraud shading?)
2. 先由這三個頂點的法向量內插出三角形內每個像素的法向量
再由每個像素的法向量來算出他們個別的光強 然後畫出整個三角形
(Phong shading?)
3. 都不是 囧~~
希望板上OpenGL的高手指點小弟....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.89.129
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章