Различия и взаимосвязь между glActiveTexture и glBindTexture

Из того, что я понял, glActiveTexture устанавливает активный «текстурный блок». Каждый блок текстуры может иметь несколько объектов текстуры (обычно GL_TEXTURE_1D, 2D, 3D или CUBE_MAP).

Если я правильно понимаю, вы должны вызвать glActiveTexture , чтобы сначала установить текстурный блок (инициализированный как GL_TEXTURE0 ), а затем вы привязываете (одну или несколько) «текстурных целей» к этому текстурному блоку?

Количество доступных текстурных блоков зависит от системы. Я вижу в своей библиотеке перечисления до 32. Я думаю, это по сути означает, что я могу иметь меньший из ограничений моего графического процессора (который, я думаю, составляет 16 8) и 32 текстуры в памяти графического процессора одновременно? Я предполагаю, что есть дополнительный предел, который я не превышаю максимальной памяти моего графического процессора (предположительно 1 ГБ).

Правильно ли я понимаю взаимосвязь между объектами текстуры и блоками текстуры? Допустим, мне разрешено 16 юнитов и 4 мишени для каждой, означает ли это, что есть место для 16 * 4 = 64 целей, или это не работает так?

Затем вы обычно хотите загрузить текстуру. Вы можете сделать это через glTexImage2D . Первый аргумент - цель текстуры.Если этот работает как glBufferData , то мы, по сути, привязываем «дескриптор» / «имя текстуры» к цели текстуры, а затем загружаем данные текстуры в эту цель и, таким образом, косвенно связываем ее с этой целью. ручка.

А как насчет glTexParameter ? Мы должны привязать цель текстуры, а затем снова выбрать ту же цель в качестве первого аргумента? Или цель текстуры не должна быть привязана, пока у нас есть правильный активный блок текстуры?

glGenerateMipmap тоже работает с целью ... эта цель все еще должна быть привязана к имени текстуры, чтобы она могла быть успешно?

Затем, когда мы хотим нарисовать наш объект с текстурой на нем, должны ли мы и выбрать активный блок текстуры, а затем цель текстуры? Или мы выбираем текстурный блок, а затем можем получать данные с любой из 4 целей, связанных с этим блоком? Это то, что меня действительно сбивает с толку.

129
задан Community 23 May 2017 в 12:26
поделиться