5

他のレンダリング パーツに影響を与えるため、複数のテクスチャ ユニットをオフにする方法。私はそれらをアクティブにします:

        glActiveTexture(GL_TEXTURE0 + index);
        glBindTexture(GL_TEXTURE_2D,
               ((MaterialSampler2D)specular).texture.getTOB());
        shader.setTexture2(index);

glDeactivateTexture のようなものはありますか?

4

2 に答える 2

11

glActiveTextureテクスチャ ユニットをアクティブにしません。現在変更しているテクスチャ ユニットを選択するだけです (はい、OpenGL のオブジェクト状態管理はひどいものです)。glEnable(<texture-target>)と でテクスチャをアクティブにしますglDisable(<texture-target>)。あなたの場合、ターゲットはGL_TEXTURE_2D.

あなたの質問に答えるには:iを使用してテクスチャユニットを選択しglActiveTexture(GL_TEXTURE0+i)、 で無効にしglDisable(GL_TEXTURE_2D)ます。

これはすべてシェーダーでは冗長であることに注意してください。シェーダーの値にアクセスすることはできません。

于 2011-04-18T16:02:45.313 に答える
1

glDisableのようなものですか?http://www.opengl.org/sdk/docs/man/xhtml/glEnable.xml

于 2011-04-18T15:52:27.900 に答える