Когда я должен использовать несколько текстурных блоков? - PullRequest
5 голосов
/ 07 августа 2011

Когда мне следует использовать несколько текстурных блоков с помощью команды glActiveTexture (TEXTURE 0 и TEXTURE 1)? Из примеров, которые я видел, можно использовать несколько текстур для текстурного блока TEXTURE0.

Ответы [ 2 ]

6 голосов
/ 07 августа 2011

Существует разница между использованием нескольких текстур (рисовать объект A с текстурой X, рисовать объект B с текстурой Y) и мультитекстурирование . Мультитекстурирование означает рисование объекта A с текстурами X и Y. Результирующий цвет основан на различных состояниях «текстурной среды» (или шейдеров, если вы их используете); это состояние сообщает OpenGL, как объединить значения двух текстур в один цвет.

Если вы используете фиксированную функцию, то каждая текстура имеет свой набор текстурных координат. Окончательное значение цвета рассчитывается на основе цветов, выбранных этими текстурными координатами на соответствующих им текстурах. Эти текстурные цвета передаются через текстурную среду, которая представляет собой последовательность операций, применяемых к тем цветам, которые вычисляют окончательный цвет.

Если вы используете шейдеры, вы можете делать практически все, что захотите. Составляйте текстурные координаты на лету, используйте произвольные операции для объединения текстурных «цветов» и т. Д.

Единицы текстуры предназначены для мультитекстурирования.

5 голосов
/ 07 августа 2011

Вам необходимо мульти-текстурирование, например, когда вы используете: нормальное отображение, параллаксное отображение, текстурирование ландшафта.

В деталях для отображения нормалей вам понадобится модуль диффузной текстуры для модели, а также карта нормалей и выборка обеих текстур, однако вы не можете активировать один и тот же канал для обеих текстур, вам нужно активировать TEXTURE0 и TEXTURE1 и связать их с соответствующими текстурами id.

После того, как вы активировали их и нарисовали модель, используя эти текстуры в цветовом буфере, вы можете использовать их для других текстур.

Думайте о них как о флагах, чтобы активировать различные текстуры каналов на графическом процессоре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...