4
glActiveTextureとglBindTextureの違いと関係
私が集めたものからglActiveTexture、アクティブな「テクスチャユニット」を設定します。各テクスチャユニットは複数のテクスチャターゲットを持つことができます(通常はGL_TEXTURE_1D、2D、3D、またはCUBE_MAP)。 私が正しく理解している場合、glActiveTexture最初にテクスチャユニットを設定するために(初期化してGL_TEXTURE0)呼び出す必要があり、次に(1つ以上の)「テクスチャターゲット」をそのテクスチャユニットにバインドしますか? 使用可能なテクスチャユニットの数はシステムに依存します。ライブラリに最大32個の列挙型が表示されます。これは本質的に、GPUの制限を小さくできることを意味します(これは168)およびGPUメモリ内の32のテクスチャーを同時に使用しますか?GPUの最大メモリ(おそらく1 GB)を超えないように、追加の制限があると思います。 テクスチャターゲットとテクスチャユニットの関係を正しく理解していますか?たとえば、16ユニットとそれぞれ4つのターゲットが許可されているとしましょう。それは、16 * 4 = 64ターゲットの余地があることを意味しますか、それともそのように機能しませんか? 次に、通常はテクスチャをロードします。これはを介して行うことができますglTexImage2D。最初の引数はテクスチャターゲットです。これがのようglBufferDataに機能する場合、基本的に「ハンドル」/「テクスチャ名」をテクスチャターゲットにバインドし、テクスチャデータをそのターゲットにロードして、間接的にそれをそのハンドルに関連付けます。 どうglTexParameterですか?テクスチャターゲットをバインドしてから、同じターゲットを最初の引数として再度選択する必要がありますか?または、正しいアクティブなテクスチャユニットがある限り、テクスチャターゲットをバインドする必要はありませんか? glGenerateMipmap ターゲットでも動作します...そのターゲットを成功させるには、そのターゲットをテクスチャ名にバインドする必要がありますか? 次に、テクスチャのあるオブジェクトを描画する場合、アクティブなテクスチャユニットとテクスチャターゲットの両方を選択する必要がありますか?または、テクスチャユニットを選択してから、そのユニットに関連付けられた4つのターゲットのいずれかからデータを取得できますか?これは本当に私を混乱させている部分です。