2016-06-25 15 views
0

OpenGLでGL_POINTSの両方の照明を有効にするにはどうすればよいですか? glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);はファセットのみで動作していますが、GL_POINTSでは動作していないようです。頂点法線を使用してGL_POINTSの両方の側面照明を有効にする方法

照明が有効になっているverticesvertex normalsの両方を供給しています。 GL_LIGHT_MODEL_TWO_SIDEを無効にすると、GL_POINTSは法線方向に従って点灯します。しかし、私はGL_POINTSの両面照明を有効にすることはできません。

OpenGLレガシー機能を使用してこれを行うことはできますか?あるいは、すべての法線を否定して両辺をレンダリングする必要がありますか?

ありがとうございます。 modern OpenGLを使用するようにコメントしないでください。それは私の質問に対する答えではなく、単なる提案です。

+0

OpenGLは** C ** APIです。ここで "C++"のタイトルとタグを置くのは何ですか? – user3078414

+0

@ルカ:それは大丈夫です。しかし、どのように法線の両方の方向を描画する。実際的な例は、レンダリングが密集した頂点のセットでのみ行われる場合です。そして、法線は方向づけられていません。私の謙虚な質問の重要性は、私が使った英語の意味ではありません。 –

+0

@ user3078414:彼は彼!私はPythonを追加することも考えました:)(punintended)。ウィキペディアをチェックしてください。 'Open Graphics Library(OpenGL)は、2Dおよび3Dベクトルグラフィックスをレンダリングするクロスプラットフォームのクロスプラットフォームアプリケーションプログラミングインターフェイス(API)です。 ' –

答えて

1

OpenGLでGL_POINTSの両サイド照明を有効にするにはどうすればよいですか?

あなたはありません。ポイントとラインはにはのサイドがありません。顔プリミティブ(三角形、四角形など)のみが面を持っています。

したがって、法線が離れているか、何かがある場合は、ライティング計算で標準を逆にしたい場合は、ジオメトリを2回レンダリングする必要があります。

+0

ありがとう!さて、それは私が2点の雲を描いていることです。同じポイントがエイリアスにならないように、小さな「w」の場合は、「P1 = {v_i、n_i}」および「P2 = {v_i-w * n_i、-n_i}」となります。 それでも、私はバックライトを見ることができません。 –

+0

もう一度ありがとう!私はその初期化中に '' P1-> num_vertices' 'を設定しないというばかげた間違いをしていました。それは働いている。 –

関連する問題