Нормальный вектор для Quad - PullRequest
       21

Нормальный вектор для Quad

0 голосов
/ 10 ноября 2011

Я написал простой квад с glBegin и glEnd. С помощью цикла for я создаю копии четырехугольника и вращаю его вокруг своей оси Y в 3D-пространстве. Теперь проблема в том, что я вижу только четырехугольники спереди. Они сзади не отображаются. Я предполагаю, что проблема находится в пределах вектора нормалей, направление которого ко мне. Есть ли возможность определить два нормальных вектора для одного квадратора. Спасибо

Ответы [ 2 ]

3 голосов
/ 10 ноября 2011

Звучит так, как будто вам нужно отключить выборку задней стороны:

glDisable(GL_CULL_FACE);
0 голосов
/ 10 ноября 2011

Они сзади не отображаются.Я предполагаю, что эта проблема лежит в пределах вектора нормалей,

Проблема не в векторе нормалей, а в том, что OpenGL считает передней и задней сторонами.Что именно определяется по намотке вершин на экране.Если вершины отображаются на экране в направлении против часовой стрелки, то по умолчанию OpenGL принимает переднюю грань.Если выборка задней грани включена, задние грани не будут отрисовываться.Вы можете отключить отбраковку, но тогда вы получите странные результаты освещения.

Лучший способ - это нарисовать заднюю сторону явным образом с собственным набором четырехугольников;обмотки и нормали отрегулированы.

...