glActiveTexture
が必要な理由を理解する方法を見つけています。私は以下のコードを持っています:
glGenTextures(1, &textureId);
glBindTexture(GL_TEXTURE_2D, textureId);
GL_TEXTURE_2D
が壁に掛かっている写真のフレームであり、textureId
が実際の写真であると想像すると、glBindTexture
は実際の写真をフレームに割り当てるための唯一のコマンドです。では、GL_TEXTURE0
とglActiveTexture
とは何ですか?
以下のコードは正常に機能しますか?
glActiveTexture(GL_TEXTURE0);
glGenTextures(1, &textureId);
glBindTexture(GL_TEXTURE_2D, textureId);
glActiveTexture(GL_TEXTURE1);
glTexImage2D(GL_TEXTURE_2D, .....)
glTexParameteri(GL_TEXTURE_2D, ...)
私は現在OpenGL2.1を使用しています。
GL_TEXTURE_2Dが壁に掛かっている画像のフレームであり、textureIdが実際の画像であると想像すると、
実際には非常に良い例えです:)
では、GL_TEXTURE0とglActiveTextureは何ですか?
複数の額縁があり、最初のフレームにはGL_TEXTURE0、2番目のフレームにはGL_TEXTURE1というラベルが付いている壁について考えてみます。
OpenGLは、ある時点でマルチテクスチャリングを導入しました(これは基本的に1つのジオメトリパスで複数のテクスチャを使用);古いコードを機能させ続けるために、すべての関数にパラメーターを追加するだけでは不十分でした。そのため、アドレス指定するテクスチャユニットを明示的に指定する必要があります。