1

Phong / Blinnシェーディングモデルを使用しようとしていますが、減衰を正しく機能させるのに問題があります。何らかの理由で、ポイントライトに面しているジオメトリが完全に白くなります。(1)コードは固定機能で完全に正常に機能し(つまり、すべての減衰/位置係数が適切に設定されている)、(2)次のものを置き換えると正常に機能するためです。

att = 1.0 / (gl_LightSource[i].constantAttenuation + gl_LightSource[i].linearAttenuation * dist + gl_LightSource[i].quadraticAttenuation * dist * dist);

att = 1.0 / (1 + 0.1*dist);

つまり、他のすべての計算(距離、方向、正規化)は正常に機能しているように見えますが、このコード行には(どういうわけか)問題があります。必要に応じてもっと投稿させていただきますが、これが問題のようです。

PS Windows 7を実行していて、私のOpenGLバージョンは4.3として出力されます。

アップデート:

これが問題のプリントスクリーンです。

エラー画像http://snag.gy/EWpOl.jpg

そしてそれがどのように見えるかatt = 1.0 / (1 + 0.1*dist);

正しい画像http://snag.gy/NiYvA.jpg

4

0 に答える 0