2013-04-25 2 views
0

У меня есть квадроцикл, в котором я вращаюсь после того, как в моем методе renderscene на 90 градусов, так что передняя грань квада будет направлена ​​вверх. Мне было интересно, хочу ли я установить нормали, если бы я установил нормали перед тем, как он повернул или после того, как он повернулся.Определение нормалей на объекте

ответ

1

Чтобы продлить на то, что datenwolf сказал: Normals определены в локальном space.Together с vertices.If ваш четырехъядерных фронт вверх, то вы должны определить для каждой вершины нормаль быть

normal= {0 , 1 , 0 } 

Затем в вершинном шейдере вы преобразуете его по нормальной матрице.

+0

Привет, Майкл. Я был немного смущен, потому что мой квадратик сначала повернулся к экрану, пока я не повернул модель и не умножил ее на матрицу вида. Так что не было уверенности в том, следует ли устанавливать нормали на 0,0,1 или 0,1,0 – DorkMonstuh

+0

Это действительно зависит от облицовки по умолчанию спереди. В моем двигателе, например, по умолчанию квадратная сторона обращена к экрану (спереди) поэтому я определяю свои нормали {0,0,1} –

+0

, скажем, если бы я определил, что мой нормальный, чтобы быть 0,0,1, а затем повернул его на 90 градусов, нормали бы все еще были на 0,0,1? – DorkMonstuh

1

Это зависит от того, как вы обрабатываете нормали в шейдерах. Если вы принимаете нормальное преобразование как транспонированную, инвертирующую модельное представление (обычное), то нормали находятся в модельном локальном пространстве.

 Смежные вопросы

  • Нет связанных вопросов^_^