У меня есть квадроцикл, в котором я вращаюсь после того, как в моем методе renderscene на 90 градусов, так что передняя грань квада будет направлена вверх. Мне было интересно, хочу ли я установить нормали, если бы я установил нормали перед тем, как он повернул или после того, как он повернулся.Определение нормалей на объекте
0
A
ответ
1
Чтобы продлить на то, что datenwolf сказал: Normals определены в локальном space.Together с vertices.If ваш четырехъядерных фронт вверх, то вы должны определить для каждой вершины нормаль быть
normal= {0 , 1 , 0 }
Затем в вершинном шейдере вы преобразуете его по нормальной матрице.
1
Это зависит от того, как вы обрабатываете нормали в шейдерах. Если вы принимаете нормальное преобразование как транспонированную, инвертирующую модельное представление (обычное), то нормали находятся в модельном локальном пространстве.
Привет, Майкл. Я был немного смущен, потому что мой квадратик сначала повернулся к экрану, пока я не повернул модель и не умножил ее на матрицу вида. Так что не было уверенности в том, следует ли устанавливать нормали на 0,0,1 или 0,1,0 – DorkMonstuh
Это действительно зависит от облицовки по умолчанию спереди. В моем двигателе, например, по умолчанию квадратная сторона обращена к экрану (спереди) поэтому я определяю свои нормали {0,0,1} –
, скажем, если бы я определил, что мой нормальный, чтобы быть 0,0,1, а затем повернул его на 90 градусов, нормали бы все еще были на 0,0,1? – DorkMonstuh