OpenGL: gl_NormalMatrix & Skinning - PullRequest
       4

OpenGL: gl_NormalMatrix & Skinning

0 голосов
/ 29 апреля 2011

Как получить нормальную матрицу для нормальной, когда я делаю скиннинг?В частности, когда я делаю двойную кватернионную шкуру.

1 Ответ

1 голос
/ 29 апреля 2011

Кватернионы напрямую переводятся в матрицы вращения. В случае OpenGL матрица вращения - это верхняя левая подматрица 3 × 3. Нормалы преобразуются путем обратной транспонирования матрицы вида модели. Однако для чистых вращений, которые являются ортонормированными преобразованиями, обратное является транспонированием, поэтому получение обратной транспонирования матрицы чистого вращения является тождественным преобразованием.

Таким образом, вы можете просто передать свои кватернионы в виде vec4 в шейдер, построить там матрицу вращения 4 × 4, использовать ее непосредственно на нормали и умножить ее на gl_ModelViewMatrix, чтобы получить преобразование положения вершины .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...