2009-06-24 10 views
1

OpenGLを学習していて、ちょうどライティングを開始しました。 (注意、それは少し間違っている場合は、私が書いている各フレームの位置を更新すると、OpenGLのライトが点滅します

glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
// do my 3rd-person camera transforms and rotations 
glLightfv(GL_LIGHT0, GL_POSITION, {0.1f, 0.0f, 0.0f}); 

:私は、照明や光の0を可能にする私のinitメソッドにおけるデフォルト値にその周囲/拡散/鏡面を設定し、各フレーム私はこのような何かを私のアプリケーションはJavaでJOGLを使っていましたので、私はglとGLをそれぞれの行からトリムして、C++の皆さんのための読みやすさを向上させました:))

私は三角形などを描いて、 glFlush()。

奇妙な問題は、アプリケーションを実行すると、ライトが点滅することです。私は私の全体のプログラムでglLightfvを呼び出す必要はありません(上記のように、私のinitメソッドの呼び出しはデバッグして一度だけ実行します)。非常に速くちらつき、画面には裂けが見られます。私はまた、私のシーンの描画のどの時点でもglDisable(GL_LIGHTING)をしません。私はそれが点灯オブジェクトがちらつく原因になるとは思わない。

私は、デバッグの目的で、私の描画コードのチャンクをコメントアウトしていますが、照明を壊しているようなものは何もありません - もちろん、私はそれをすべて書き、それをテストしました。それが間違っているべき理由。

基本的にこれはあまり行くことはないと知っていますが、他の誰かがこの問題を以前に持っていましたか?私が見つけられない単純な解決策がありますか?助けてくれる追加情報をリクエストしてください。結局のところ私が答えを得ることができないのであれば、ここでレンダリングコード全体を投稿して問題を示すことができるテストケースを作成し、書き留めておかなければならないでしょう。

Here is a really bad animated gif I tried to make...しかし、光が散発的である限り、私が何を話しているかを少し示しています。点灯したフレームは、そのように見えるものです。また、私が5fpsまで遅くするとそれほどちらつくことはありません。ちょっとランダムにオンまたはオフになります。私はそれを取得しません...

ありがとう!!

答えて

6

Aha!私はすでに答えを見つけました... 私は位置が3つの浮動小数点を指定しました。文書化されているように4が必要な場合here。したがって、光の明るさにある程度の影響を与える必要がある4番目の数字は、メモリ内の他のランダムな領域から読み取られていましたが、もちろん奇妙なことが起こりました。

ご迷惑をおかけします。

+0

時間の無駄ではありません!私のチームはこの1つを理解しようと何週間も過ごしました! – IDWMaster

+0

@ IDWマスター、この答えを見つけられたらうれしいです!申し訳ありません、あなたのチームはとても長くかかりました... – Ricket

関連する問題