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