0

私はOpenGLが初めてです。Java/JOGL を使用しています。

ポリゴン フェースに問題があります。どちらが表か裏かをコントロールできるようにしたいです。私はこのドキュメンテーションに取り組んできました。

私のdisplay()方法では、このコード行ですべてのポリゴン面が描画されると思いましたが、効果はありませんでした。

gl.glPolygonMode(GL.GL_FRONT_AND_BACK, GLU.GLU_LINE);

これを使用して、レンダリングする面を反転できます。

gl.glFrontFace(GL.GL_CW);

しかし、私のポリゴンの半分は一方向を向いており、半分は反対側を向いているため、レンダリングされるのは半分だけです。

gl.glNormal3f()「正面」であることに関係があることを期待して、法線を設定するために使用しようとしましたが、効果はありませんでした。

私はここで何をしているはずですか?

ありがとう。

4

2 に答える 2

4

フロントは法線ではなく、頂点の順序で定義されます。ポリゴンを正面から見て、作成順に頂点をたどっていくと、右回りか左回りにポリゴンをなぞることになります。反対側からポリゴンを見ると、反対方向にトレースします。

glFrontFace正面と見なされる方向を設定します。正面であるはずの方向から見たときに、すべての頂点が同じ順序で定義されていることを確認してください。

于 2010-09-18T18:53:44.157 に答える
2

カリングが有効になっている可能性があります。で無効にすると

glDisable(GL_CULL_FACE);

次に、すべての顔をラスタライズする必要がありますが、ポリゴンが裏返しになっていないことを確認するのが最善です.

于 2010-09-18T19:01:41.600 に答える