アプリケーションにいくつかの変更を加えた後、テクスチャが表示されなくなりました。これまでのところ、次のことを確認しました。
- カメラの向きは変わっていません。
- ベクトルが表示されます (テクスチャの代わりに色を付けた場合)。
いつもの容疑者?
次の点を確認してください。
glEnable(GL_TEXTURE_2D);
面前
glBindTexture(GL_TEXTURE_2D,
texture[i]);
glBindTexture(GL_TEXTURE_2D, 0);
テクスチャが不要になったとき
私が時々遭遇する一般的な問題の1つは、
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
しかし、ミップマップを提供するのを忘れていました。クイックフィックス:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
さらにいくつかの確認事項があります。
glEnable(GL_TEXTURE_2D) のような操作を実装する必要があり、テクスチャが以前は正常に機能していたのに突然表示されなくなったため、テクスチャバインディングが必要であると思います。
オブジェクト指向のコードを実行している場合、実際に描画を実行しているスレッドがインスタンス化されたときにテクスチャ生成を実行したい場合があります。つまり、コンストラクターで実行したり、コンストラクターからの呼び出しを避けたりすると、テクスチャがインスタンス化される可能性があります。ウィンドウまたはそれを使用するアプリの前にオブジェクトをオンにします。
私が通常行うことは、アプリの Init 関数で呼び出されるテクスチャ作成の手動 Init 関数を作成することです。したがって、バインディングが発生したときにアプリが存在することを保証します。
詳細はこちら: http://www.opengl.org/wiki/Common_Mistakes#The_Object_Oriented_Language_Problem
テクスチャ オブジェクトをレンダリングする前の glColor3ub(255,255,255) は役に立ちますか? デフォルトの OpenGL 状態では、現在の glColor に着信テクセルが乗算されると思います。迷子の glColor3ub(0,0,0) は、すべてのテクスチャを黒く見せます。