でテクスチャの例を読みましたOpenGL 2.1
。フラグメント シェーダーは次のようになります。
#version 120
uniform sampler2D texture;
varying vec2 texcoord;
void main(void)
{
gl_FragColor = texture2D(texture, texcoord);
}
texcoord
頂点シェーダーから渡されます。
次の C++ レンダリング コードが使用されます。
void render()
{
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture_id);
glUniform1i(unf_texture, 0);
}
私はいくつかのことについて混乱しています。質問があります:
フラグメント シェーダーでは、テクスチャにゼロ値が渡されます (によって
glUniform1i()
)。値は本当にゼロですか?値は別のものですか?glActiveTexture()
電話は本当に必要ですか?にゼロ値を渡すのはなぜ
glUniform1i()
ですか?