画面にテキストをレンダリングするためにSlick2Dライブラリを使用していますが、Rectのようなglシェイプをレンダリングするには、最初にGL_TEXTURE_2Dを無効にする必要があります。なぜそれが必要なのか知りたいだけです。GL_TEXTURE_2Dが図形のレンダリングを無効にするのはなぜですか?
質問する
488 次
2 に答える
6
OpenGL の仕組みは、基本的に 1 つの大規模なグローバル ステート マシンです。テクスチャをバインドすると、後で描画するすべての三角形でそのテクスチャが使用されます。
ここでの問題は、テキスト描画が後でテクスチャのバインドを解除しないため、後で描画する形状は、テクスチャを使用せずにそのテクスチャを使用することです。レンダリングを「無効にする」と考える理由は、テクスチャが文字で構成されており、他のすべてが透明であるためです。表示されているのは、OpenGL が不透明度 0 でシェイプを描画していることです。
無効にするGL_TEXTURE_2D
と、テクスチャがバインドされなくなり、テクスチャなしで定期的に描画されます。
于 2012-12-17T19:09:22.620 に答える
2
紐のテクスチャがかかっているので。おそらくテクスチャ座標を設定していないため、おそらくテクスチャの透明なセクションを使用しているため、何も表示されません。
于 2012-12-17T18:59:05.803 に答える