1

オブジェクトが静止しているときに非常にうまく機能するように見える光源を JOGL プロジェクトに追加しました。カメラを動かすと、回転するにつれて徐々に暗くなります。これは予想どおりですが、90 度回転するとすぐに画面が消えます。完全に黒ですが、これがなぜなのか誰か知っていますか?反対側に別の光源が必要ですか? 私はそれが太陽のように機能することを望んでいました。つまり、シーン全体を照らしますが、カメラがオブジェクトの反対側にあるときは少し暗くなります。

点灯

float light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
float light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
float light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
float light_position[] = { 1.0f, 1.0f, 1.0f, 0.0f };

gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_AMBIENT, light_ambient, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_DIFFUSE, light_diffuse, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_SPECULAR, light_specular, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_POSITION, light_position, 0);

gl.glEnable(GL2.GL_LIGHTING);
gl.glEnable(GL2.GL_LIGHT0);
gl.glDepthFunc(GL.GL_LESS);
gl.glEnable(GL.GL_DEPTH_TEST);

第二に、カメラが回転すると、いくつかの形状が変形し、完全に異なる形状のように見えます。つまり、立方体がピンクッションのように変わり、側面が信じられないほど引き伸ばされ、オブジェクト全体がわずかに変形して見えます。これを簡単に変更する方法はありますか?私はいじってみましgluPerspectiveたが、それでも私が望むものを変えることはないようです。これを回避する方法はありますか?

4

1 に答える 1

0

シーンに拡散光と鏡面反射光を追加しましたが、これらは光源から離れた面に到達しません。アンビエント ライト (現在、コード スニペットで 0, 0, 0 に設定されています) を追加して、すべてのサーフェスが何らかの照明を受けるようにすることができます。

変形した形状に関しては、それは実際には別の問題であり、なぜこれが起こっているのかを知るのに十分な詳細はありません.

于 2013-02-27T17:38:42.593 に答える