Объекты текстурного буфера или обычные текстуры? - PullRequest
8 голосов
/ 08 июня 2011

OpenBL SuperBible обсуждает объекты буфера текстур, которые являются текстурами, сформированными из данных внутри VBO.Похоже, есть преимущества в их использовании, но все примеры, которые я нашел, создают обычные текстуры.У кого-нибудь есть совет относительно того, когда использовать один поверх другого?

Ответы [ 2 ]

8 голосов
/ 08 июня 2011

Согласно реестру расширения , текстурные буферы являются только одномерными, не могут выполнять какую-либо фильтрацию и доступ к ним осуществляется путем доступа к явным текселям (по индексу) вместо нормализованного [0,1] плавающего координаты точечной текстуры. Таким образом, они на самом деле не заменяют обычные текстуры, а представляют собой большие однородные массивы (например, матрицы скинов или данные для каждого экземпляра). Было бы гораздо разумнее сравнивать их с однородными буферами, чем с обычными текстурами, как сделано здесь .

РЕДАКТИРОВАНИЕ: Если вы хотите использовать данные VBO для обычных, отфильтрованных 2D текстур, вам не удастся обойти копию данных (лучше всего это делать с помощью PBO). Но когда вам просто нужен простой доступ к массиву данных и атрибутов VBO, этого недостаточно, поэтому предпочтительным методом должен быть буфер текстур.

РЕДАКТИРОВАТЬ: После проверки соответствующей главы в SuperBible, я обнаружил, что они, с одной стороны, упоминают, что буферы текстуры всегда одномерные и доступны с помощью дискретных целочисленных смещений текселей, но с другой стороны не могут явно упомянуть отсутствие фильтрации. Мне кажется, они более или менее рекламируют их как текстуры, просто получающие свои данные из буферов, что объясняет вопрос ОП. Но, как упоминалось выше, это просто неправильное сравнение. Текстурные буферы просто предоставляют способ прямого доступа к данным буфера в шейдерах в виде простого массива (хотя и с настраиваемым типом элемента), не более (что делает их бесполезными для обычного текстурирования), но и не менее (они все еще являются отличной функцией ).

0 голосов
/ 08 июня 2011

Обычные текстуры используются, когда VBO не поддерживаются.

...