• ベストアンサー
  • すぐに回答を!

こんにちは。

  • 質問No.6178821
  • 閲覧数142
  • ありがとう数4
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (7/7)

こんにちは。

現在WindowsのコンソールプログラムにopenGLで球体を描画するプログラムを書いています。
言語はc++です。(Visual Studio 2005)
ですが、以下のような状況が発生してしまいました。

1.glEnable(GL_DEPTH_TEST) を使用するとライトを用いて描画したオブジェクトが真っ黒になる。
2.glEnable(GL_DEPTH_TEST) を使わないと、ライトを当てて問題なく描画されるが、やはり深度は変になる。
3.ライトを用いずに glEnable(GL_DEPTH_TEST) を用いると正常に描画される。
以上の球体の描画は glutSolidSphere もしくは gluSphere を用いました。

初期化としては、
glClearDepth(1.0f);
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);

glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_DIFFUSE, white);

glColorMaterial(GL_FRONT, GL_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);
このようにしています。

以上の状況が発生する原因として考えうることは、どのようなことがあるでしょうか。
ご教授いただけると幸いです。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 67% (55/81)

モデルビューの設定はできていますか?

レンダリング処理を

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

gluLookAt( 0 , 0 , 4 , 0 , 1 , 0 , 0.01 , 100 );
glutSolidSphere(1.0, 100, 100);

という感じにすると正常にならないでしょうか
お礼コメント
sprintfalls

お礼率 100% (7/7)

うまくできました!ありがとうございました。
投稿日時:2010/11/02 12:05
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ