0

画面にテキストをレンダリングするためにSlick2Dライブラリを使用していますが、Rectのようなglシェイプをレンダリングするには、最初にGL_TEXTURE_2Dを無効にする必要があります。なぜそれが必要なのか知りたいだけです。GL_TEXTURE_2Dが図形のレンダリングを無効にするのはなぜですか?

4

2 に答える 2

6

OpenGL の仕組みは、基本的に 1 つの大規模なグローバル ステート マシンです。テクスチャをバインドすると、後で描画するすべての三角形でそのテクスチャが使用されます。

ここでの問題は、テキスト描画が後でテクスチャのバインドを解除しないため、後で描画する形状は、テクスチャを使用せずにそのテクスチャを使用することです。レンダリングを「無効にする」と考える理由は、テクスチャが文字で構成されており、他のすべてが透明であるためです。表示されているのは、OpenGL が不透明度 0 でシェイプを描画していることです。

無効にするGL_TEXTURE_2Dと、テクスチャがバインドされなくなり、テクスチャなしで定期的に描画されます。

于 2012-12-17T19:09:22.620 に答える
2

紐のテクスチャがかかっているので。おそらくテクスチャ座標を設定していないため、おそらくテクスチャの透明なセクションを使用しているため、何も表示されません。

于 2012-12-17T18:59:05.803 に答える