0

私は常に 0 テクスチャ ユニットを選択して 1 つのテクスチャだけを描画してきました

glActiveTexture(GL_TEXTURE0);

別のテクスチャ ユニットを選択する基準は何ですか?

つまり、複数のテクスチャを使用する必要がある場合、どのユニットを選択すればよいでしょうか? 私は openGL の完全な初心者であり、すべてのグラフィック テクスチャリングに同じ 0 テクスチャ ユニットを使用できるかどうか疑問に思っていました。テクスチャ ユニットはいくつありますか? N 個のテクスチャ ユニットがある場合、最大 N 個のテクスチャを使用できますか?

4

1 に答える 1

1

「テクスチャ ユニットの数は実装に依存しますが、少なくとも 2 つ必要です。」

参照: glActiveTexture ドキュメント

glActiveTexture() 呼び出しの後、glBindTexture() を使用してテクスチャをバインドします。複数のテクスチャを同じユニットにバインドできます。しかし、そのうちの 1 つだけがサンプリングされます。

参照:テクスチャ バインディング

したがって、N 個のテクスチャ ユニットがある場合、1 つのシェーダーで最大でも N 個のテクスチャをサンプリングできます。

于 2012-07-17T11:27:33.673 に答える