Различие между glTexSubImage и glTexImage функционирует в OpenGL

Каково различие между двумя функциями? Какое-либо различие в производительности?

Спасибо..

12
задан Edwin 9 March 2010 в 00:09
поделиться

2 ответа

Вы создаете текстуру с помощью glTexImage, а затем обновляете ее содержимое с помощью glTexSubImage. При обновлении текстуры вы можете обновить всю текстуру или только ее подпрямоугольник.

Гораздо эффективнее создать одну текстуру и обновлять ее, чем многократно создавать и удалять, так что в этом смысле, если у вас есть текстура, которую вы хотите обновить, всегда используйте glTexSubImage (после первоначального создания).

Для обновления текстуры могут быть применимы и другие методы. Например, смотрите эту статью о потоковой передаче текстур для получения дополнительной информации.

(Первоначально в этой статье предлагалось использовать glMapBuffer для обновления текстуры - см. обсуждение ниже)

.
22
ответ дан 2 December 2019 в 07:02
поделиться

Функции gl с "sub" в названии не ограничиваются размерами power-of-2. Как указывает gavinb, вам нужно использовать вариант non-sub один раз, чтобы установить общие размеры, но я не согласен с тем, что повторный вызов варианта non-sub медленнее, чем использование "sub" для обновления - GPU по-прежнему может перезаписать существующую текстуру на месте, пока вы используете тот же идентификатор текстуры.

0
ответ дан 2 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: