私はOpenGLで3Dゲームを開発しています。あるシーンを別のシーンに変更すると(2Dメニューシーンから3Dゲームシーンに、または2Dシーンから別の2Dシーンに変更されても)、2番目のシーンは白く見えますが、なぜかわかりません。どんな助け?ゲームのシーンが白く表示されるのはなぜですか?
これは私のレンダリングフレームワークコードです:
//Clear the window with current clearing color
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(0, 800, 600, 0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//draw 2d
if (!CurrentStage.IsNull())
{
CurrentStage->Draw(false);
}
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glDisable(GL_DITHER);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glEnable(GL_TEXTURE_2D);
//Post camera to current position.
glMatrixMode(GL_MODELVIEW);
Cameras->Post();
//draw 3d
if (!CurrentStage.IsNull())
{
CurrentStage->Draw(true);
}
glDisable(GL_CULL_FACE);
glDisable(GL_DEPTH_TEST);
SwapBuffers(Core->mhDC);
//Render finish.
Sleep(0);
2Dまたは3Dシーンのみを描画すると、シーンが白く表示されますか?あるシーンから別のシーンに切り替えるとシーンが白く表示されますか?私はちょうどあなたが意味していることを確かめたかったのです。 – Ryan
問題を再現しようとしましたが、私はCurrentStageもカメラも持っていません。それ以上の情報がなければ、gluOrtho2Dは宣言されておらず、そうではないIntsを取ることが期待されているという野生の推測をしなければなりません(あなたが与えたintは二重に変換されず、doubleをdoubleその結果、 "pixel" 0,0で描くものはすべて画面全体を埋めるでしょう)。私たちが問題を再構築するのを助けるために、http://sscce.org/を作成して、CurrentStageとカメラが何であるか、またはそれらを使わずにSSCCEを作成しようとしていることを具体的に伝えてください。 –