Je sais que la matrice de transformation normale est l'inverse de la transposition de la matrice modèle/vue/projection, mais il semble que "inverse
" n'a été ajouté que dans GLSL 1.4 et je ne peux pas trouver "transpose
". Dois-je simplement copier et coller un tas de maths dans mon GLSL? (Si c'est le cas, y a-t-il un bon endroit open source faisant autorité que je peux copier?)Étant donné la matrice de transformation modèle/vue/projection, comment puis-je calculer la matrice normale sans utiliser de fonctions obsolètes dans GLSL 1.2?
Pour être clair, ce que je demande est "Comment puis-je calculer gl_NormalMatrix
sans utiliser d'API dépréciées"?
BTW, il n'y a pas beaucoup de points à éviter " API obsolètes "si vous êtes confiné à GL 2.1. –
N'est-il pas plus facile de rediriger le port vers des versions plus récentes d'OpenGL et OpenGL ES si vous vous en tenez aux choses qui fonctionnent sur un profil de base? – Glyph