OpenGL ES 1.1を使用してサンプル3Dシーンをレンダリングしました。ここ は、私が身元の射影行列を持っているとき、私は何を得る(私も、通常の鏡面マップを使用しています)です:OpenGLのパースペクティブと照明の問題
だから、すべてがOKになります。
しかし、私はglFrustum
を使用して視点を設定している場合、私はこの取得:
をだから、法線が反転しているようだと私は-1によってそれらを乗算しようとした場合、私はこの取得:
を
反対側からの光のような効果があります。
また、私は
glCullFace(GL_FRONT);
を設定する必要が同一の射影行列を使用する場合(私は正規化されたデバイスCOORDSが左利きしているためであると思う)ことを言及すべきです。
この問題の解決方法に関するご意見をお寄せいただきありがとうございます。
編集。ここ は、投影のセットアップです:あなたの第二のスクリーンショットは大丈夫に見える
float right = 0.03;
float top = 0.045;
float near = 0.1;
float far = 100.0;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustumf(-right, right, -top, top, near, far);
法線を正しい方向に再エクスポートしますか? –
'glCullFace(GL_FRONT)'を変更する必要はありません。あなたの投影行列が顔を反転させているのでしょうか?あなたの 'glFrustum'呼び出しを見せてください。これはあなたが変わっていることなのですか? –
@Banthar - アイデンティティの投影にはglCullFace(GL_FRONT)を、パースペクティブには使用しません。私の編集を参照してください。 – Max