【发布时间】:2015-11-14 16:28:20
【问题描述】:
我正在使用 z-buffer 来渲染我的 3D 三角形网格。但是,当我将模型渲染为线框网格时,我还看到了应该被正面隐藏的三角形面。所以,我使用背面剔除如下:
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
drawWireFrame();
glDisable(GL_CULL_FACE);
drawWireFrame函数如下:
void drawWireFrame()
{
int i, j;
glColor3d(1., 0., 0.);
HE_edge *curr;
for (int i = 0; i < he_f_count; i++)
{
glBegin(GL_LINE_LOOP);
curr = m_HE_face[i].edge;
glNormal3f(curr->prev->vert->vnx, curr->prev->vert->vny, curr->prev->vert->vnz);
glVertex3f(curr->prev->vert->x, curr->prev->vert->y, curr->prev->vert->z);
glNormal3f(curr->vert->vnx, curr->vert->vny, curr->vert->vnz);
glVertex3f(curr->vert->x, curr->vert->y, curr->vert->z);
glNormal3f(curr->next->vert->vnx, curr->next->vert->vny, curr->next->vert->vnz);
glVertex3f(curr->next->vert->x, curr->next->vert->y, curr->next->vert->z);
glEnd();
}
}
但是,我仍然得到与添加背面剔除之前相同的结果。你能帮我找出我在这里遗漏了什么吗?
谢谢。
【问题讨论】: