Я использую z-буфер для рендеринга моей трехмерной треугольной сетки. Однако, когда я представлял модель в виде каркасной сетки, я также видел грани треугольника, которые должны были быть скрыты передним лицом. Таким образом, я использовал заднюю грань выбраковки следующим образом:Обратное обрамление лица для линии Loop
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