Я читал пример текстуры в 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()
?