0

私は OpenGL のみを使用するプロジェクトに取り組んでいます (具体的には一度ゲームになるはずです)。数週間の開発の後、O​​penGL エラーをGL.GetError(). 何がうまくいかなかったのかだけが書かれ​​ているのが嫌いなので、発生したエラーを修正したいと思っています。

アプリを起動すると、フレームがほとんど (3 つまたは 4 つ) ありStackUnderflow、 に切り替わり、StackOverflowそのままになります。

Matrix- Push-のPop一貫性を確認しましたが、閉じていない行列は見つかりませんでした。私が見たところ、照明が機能しないことを知ることは興味深いかもしれません (さまざまなオブジェクトのすべての面がまったく同じ明るさを持っています)。

他に考えられる原因はありますか?

(ソースを見たい場合は、http: //galwarcom.svn.sourceforge.net/viewvc/galwarcom/trunk/galwarcom/にたくさんあります)

4

1 に答える 1

4

各モードには個別のスタックがあるため、ポップする前にマトリックスモードを設定する必要があります。このようなことをすると、アンダーフローします。

glMatrixMode(GL_MODELVIEW)
glPushMatrix(); 
... stuff with model view ...
glMatrixMode(GL_PROJECTION)
glPushMatrix() 
... stuff with project matrix ...
glPopMatrix()  // projection popped
glPopMatrix()  // projection again

あなたはdrawHUD()、おそらく他の場所でこのようなことをしています。

于 2010-12-13T21:40:06.257 に答える