作者zouber (旅行的意义)
看板GameDesign
标题[问题] 关於OpenGL
时间Fri Dec 29 22:58:14 2006
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