1
我正在使用z緩衝區來渲染我的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();
}
}
不過,我仍然得到同樣的結果,我加入背面剔除之前拿到。你能幫我確定我在這裏錯過了什麼嗎?
謝謝。
非常感謝您的快速響應! glPolygonMode()完全解決了我的問題!儘管如此,我仍然必須明確地啓用背面剔除才能進行撲殺。我學到了一些新東西。再次感謝:) – wateva
那麼,你當然必須啓用'GL_CULL_FACE'面部剔除工作... :) – derhass
@wateva:順便說一句,你可以標記答案爲「接受」。這是該網站是如何[應該工作](http://stackoverflow.com/tour)... – derhass