После много читать, я был в состоянии понять шаги, необходимые для загрузки текстур в OpenGL ES 2.0, но некоторые вопросы все еще не ответил:Texture Программа - OpenGL ES 2.0 Android
Что ниже код на самом деле делать?
glUniform1i(sampler2DLocation, 0);
Если я удалю эту строку из своего кода, ничего не изменится. Некоторые книги описывают его как «Говорите текстуру равномерного пробник использовать эту текстуру в затенении, говоря его читать из текстурного блока 0»
Это называется после строки:
glActiveTexture(GL_TEXTURE0);
Но, как указано в khronos.org активной текстурой по умолчанию является GL_TEXTURE0, поэтому я предполагаю, что строка «glActiveTexture (GL_TEXTURE0)»; код просто написан как хорошая практика?
Одна последняя вещь, когда я звоню:
glBindTexture(GL_TEXTURE_2D, genTextures[0]);
Я говорю, что будущие вызовы, которые влияют на «GL_TEXTURE_2D» будет влиять на текстуру блок, хранящийся в genTextures [0], из-за связывания. Но существует ли какая-либо связь между «GL_TEXTURE_2D» и активной текстурной единицей? Я имею в виду, что между 03-дюймовыми компонентами существует внутренняя цепь?
genTextures [0] < ---> GL_TEXTURE_2D < ---> активный блок текстуры
Спасибо,