2

アルファ チャネルを持つテクスチャ付きの立方体があり、立方体の周りにワイヤフレーム ボックスを描画したいと考えています。私が直面している問題は、ワイヤフレームがテクスチャ キューブの透明な部分を通して表示されないことです。ワイヤーフレームを背面に表示するにはどうすればよいですか?

両方のキューブを描画するために使用しているコードは次のとおりです。

glLoadIdentity();

glTranslatef(0.0f, 0.0f, z);

glRotatef(xRotation, 1.0f, 0.0f, 0.0f);
glRotatef(yRotation, 0.0f, 1.0f, 0.0f);
glRotatef(zRotation, 0.0f, 0.0f, 1.0f);

// Draw Textured    
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

glEnable(GL_TEXTURE_2D);
glEnable(GL_LIGHTING);

glColor4f(1.0f, 1.0f, 1.0f, 1.0f);

glBindTexture(GL_TEXTURE_2D, _images[_filter]);

glBegin(GL_QUADS);
    DrawTexturedCube();
glEnd();

// Draw Wireframe
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

glDisable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);

glColor3f(1.0f, 0.0f, 0.0f);

glBegin(GL_QUADS);
    DrawWireframeCube();
glEnd();

xRotation += xSpeed;
yRotation += ySpeed;
zRotation += zSpeed;

私のInitのブレンド機能は以下を使用しています:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

テクスチャを描画する前に、glColor4f のさまざまなアルファ値を試しましたが、違いはありませんでした。

4

1 に答える 1

3

深度テストを有効にしていますか? 私の最初の推測では、テクスチャ付きの立方体を既に描画している (おそらく深度バッファーに書き込んでいる) ため、直後に同じ Z でワイヤーフレーム キューブを描画しようとすると、深度テストに失敗し、レンダリングされません。

無効にするか、立方体をレンダリングしてからワイヤフレームをレンダリングする順序を変更してみてください。

于 2012-06-07T18:04:32.653 に答える