opengl 四面体
场景:opengl画正四面体指定法线有关问题
opengl画正四面体指定法线问题
4面体的法向量已经计算出来
glBegin(GL_TRIANGLES);
Utils::getNormalfv3(pa, pb, pc,normal1);
glNormal3fv(normal1);
glVertex3fv(pa);
glVertex3fv(pb);
glVertex3fv(pc);
Utils::getNormalfv3(pa, pd, pb,normal2);
glNormal3fv( normal2 );
glVertex3fv(pd);
glVertex3fv(pb);
glVertex3fv(pa);
Utils::getNormalfv3(pc, pd, pa,normal3);
glNormal3fv( normal3 );
glVertex3fv(pc);
glVertex3fv(pd);
glVertex3fv(pa);
Utils::getNormalfv3(pb, pd, pc,normal4);
glNormal3fv( normal4);
glVertex3fv(pb);
glVertex3fv(pd);
glVertex3fv(pc);
glEnd();
只画一个三角形,别其他注释掉,光照计算是没有问题的
但是4个面后感觉法线指定有问题了
也就是多次给某个点赋法向量会不会覆盖掉之前的?
求大神如何解决这个问题?
------解决方案--------------------
程序好像没问题,Utils::getNormalfv3 具体怎么算的法线?
------解决方案--------------------
你这是以三角形为单位指定法线,程序没啥问题,要不单独画一个三角形试试法线对不。
Utils::getNormalfv3(pa, pb, pc,normal1);
glBegin(GL_TRIANGLES);
glNormal3fv(normal1);
glVertex3fv(pa);
glVertex3fv(pb);
glVertex3fv(pc);
glEnd();
opengl画正四面体指定法线问题
4面体的法向量已经计算出来
glBegin(GL_TRIANGLES);
Utils::getNormalfv3(pa, pb, pc,normal1);
glNormal3fv(normal1);
glVertex3fv(pa);
glVertex3fv(pb);
glVertex3fv(pc);
Utils::getNormalfv3(pa, pd, pb,normal2);
glNormal3fv( normal2 );
glVertex3fv(pd);
glVertex3fv(pb);
glVertex3fv(pa);
Utils::getNormalfv3(pc, pd, pa,normal3);
glNormal3fv( normal3 );
glVertex3fv(pc);
glVertex3fv(pd);
glVertex3fv(pa);
Utils::getNormalfv3(pb, pd, pc,normal4);
glNormal3fv( normal4);
glVertex3fv(pb);
glVertex3fv(pd);
glVertex3fv(pc);
glEnd();
只画一个三角形,别其他注释掉,光照计算是没有问题的
但是4个面后感觉法线指定有问题了
也就是多次给某个点赋法向量会不会覆盖掉之前的?
求大神如何解决这个问题?
------解决方案--------------------
程序好像没问题,Utils::getNormalfv3 具体怎么算的法线?
------解决方案--------------------
你这是以三角形为单位指定法线,程序没啥问题,要不单独画一个三角形试试法线对不。
Utils::getNormalfv3(pa, pb, pc,normal1);
glBegin(GL_TRIANGLES);
glNormal3fv(normal1);
glVertex3fv(pa);
glVertex3fv(pb);
glVertex3fv(pc);
glEnd();