15

アプリケーションにいくつかの変更を加えた後、テクスチャが表示されなくなりました。これまでのところ、次のことを確認しました。

  • カメラの向きは変わっていません。
  • ベクトルが表示されます (テクスチャの代わりに色を付けた場合)。

いつもの容疑者?

4

6 に答える 6

12

次の点を確認してください。

  • glEnable(GL_TEXTURE_2D);面前

  • glBindTexture(GL_TEXTURE_2D, texture[i]);glBindTexture(GL_TEXTURE_2D, 0); テクスチャが不要になったとき

于 2009-04-11T14:26:19.260 に答える
4

私が時々遭遇する一般的な問題の1つは、

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);

しかし、ミップマップを提供するのを忘れていました。クイックフィックス:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
于 2013-03-21T22:50:20.997 に答える
2

さらにいくつかの確認事項があります。

  • glColorMaterial(...); 色がテクスチャを上書きしていないことを確認するには
  • glEnable/glDisable(GL_LIGHTING); 照明によってテクスチャが洗い流されることがあります
  • glDisable(GL_BLEND); テクスチャをブレンドしていないことを確認してください
  • テクスチャ座標が正しく設定されていることを確認してください。
于 2009-04-12T01:18:15.543 に答える
1

glEnable(GL_TEXTURE_2D) のような操作を実装する必要があり、テクスチャが以前は正常に機能していたのに突然表示されなくなったため、テクスチャバインディングが必要であると思います。

オブジェクト指向のコードを実行している場合、実際に描画を実行しているスレッドがインスタンス化されたときにテクスチャ生成を実行したい場合があります。つまり、コンストラクターで実行したり、コンストラクターからの呼び出しを避けたりすると、テクスチャがインスタンス化される可能性があります。ウィンドウまたはそれを使用するアプリの前にオブジェクトをオンにします。

私が通常行うことは、アプリの Init 関数で呼び出されるテクスチャ作成の手動 Init 関数を作成することです。したがって、バインディングが発生したときにアプリが存在することを保証します。

詳細はこちら: http://www.opengl.org/wiki/Common_Mistakes#The_Object_Oriented_Language_Problem

于 2012-08-28T03:55:44.263 に答える
0

テクスチャ オブジェクトをレンダリングする前の glColor3ub(255,255,255) は役に立ちますか? デフォルトの OpenGL 状態では、現在の glColor に着信テクセルが乗算されると思います。迷子の glColor3ub(0,0,0) は、すべてのテクスチャを黒く見せます。

于 2009-04-16T20:15:45.740 に答える