Что хранит sampler2D?

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

Я не совсем понимаю некоторые вещи У меня есть вопрос:

  1. Во фрагментном шейдере текстуре передается нулевое значение (по glUniform1i()). Действительно ли значение равно нулю? Значение является чем-то другим?

  2. Действительно ли нужен вызов glActiveTexture()?

  3. Почему мы передаем нулевое значение в ] glUniform1i()?

26
задан 0xCursor 27 July 2019 в 01:18
поделиться