0
拡散照明のシェーダーを書きました。
法線は3Dモデルの回転とともに回転し、モデルを回転すると光が回転しているように見えます。それを修正する方法ノーマルモデルで移動
バーテックスシェーダ
position = gl_ModelViewMatrix * gl_Vertex;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
normal = vec4(gl_Normal, 1.0); <---
gl_TexCoord[0] = gl_MultiTexCoord0;
フラグメントシェーダ
lightVector = normalize(vec4(lightPosition + cameraPosition, 1.0) - position);
resultNormal = normalize(normal.xyz); <---
れる空間の画像における法線であるのでなければならないので?ワールドスペース、ビュースペース?どのように計算しますか? – BDL
関連:http://stackoverflow.com/questions/13654401/what-is-the-logic-behind-transforming-normals-with-the-transpose-of-the-inverse – PeterT