1

法線変換行列がモデル/ビュー/投影行列の転置の逆行列であることはわかっていますが、" inverse" は GLSL 1.4 でのみ追加されたようで、" " が見つかりませんtranspose。大量の数学を GLSL にコピー アンド ペーストする必要がありますか? (もしそうなら、私がコピーできる素晴らしい権威あるオープンソースの場所はありますか?)

明確にするために、私が求めているのは「gl_NormalMatrix非推奨の API を使用せずに計算するにはどうすればよいですか?」ということです。

4

2 に答える 2

3

これは通常、モデルビュー行列の逆行列の転置を計算することによって処理されます

N = (M^-1)^T

CPU で、他のマトリックスをアップロードするのと同じように、マトリックスをアップロードします。

于 2013-02-11T02:08:03.117 に答える
0

明確にするために、転置もあり、スケーリングを行わない場合、通常のマトリックスは3x3サブマトリックスであり、glslで行うことができます

normal = mat3(model_matrix) * v_normal;
于 2013-12-04T16:27:42.747 に答える