2013-06-17 3 views
6

Я читаю о Texture Views в new Красная книга. На странице 322 сказано:Когда использовать Текстурные виды

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

(с помощью текстурных Просмотров)

Теперь мои вопросы:

Означает ли это единственный источник текстуры на который ссылается несколько экземпляров (в данном случае виде текстуры)?

Как это отличается от использования одного и того же объекта текстуры, например, но с разными пробоотборниками?

Кроме того, это означает, что изменение текстуры пикселей с помощью зрения текстуры изменит пиксели исходного объекта текстуры? (Я полагаю, что ответ положительный, как doc говорит, что это псевдоним магазин текстуры)

ответ

6

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

Это отличается от использования объектов сэмплера тем, что между ними нет сходства. Sampler objects параметры выборки магазина. Объекты текстуры имеют parameters that are not for sampling, такие как the mipmap range, swizzle mask и тому подобное. Это не состояние сэмплера; это состояние текстуры.

Объекты текстуры также имеют specific texture type. Различные виды одного и того же хранилища могут иметь different texture types (within limits). У вас может быть GL_TEXTURE_2D, который представляет собой один слой текстуры GL_TEXTURE_2D_ARRAY. Вы можете взять GL_TEXTURE_2D_ARRAY из 6 или более слоев и создать из него GL_TEXTURE_CUBE_MAP.

Объекты Sampler не могут этого сделать.

Объекты текстуры имеют internal format, которые определяют способ интерпретации хранилища. Различные виды одного и того же хранилища могут иметь different formats (within limits) Пробоотборники не влияют на формат.

Объекты пробоотборника также не могут быть выполнены.

Можете ли вы использовать текстурные представления для достижения того же эффекта, что и объекты сэмплера? Нет. С пробоотборниками вы отделяете параметры выборки от объектов текстуры. Это позволяет использовать один и тот же набор параметров для нескольких разных объектов. И поэтому вы можете изменить один объект сэмплера и использовать его с несколькими текстурами, не переходя к каждой текстуре и не изменять ее.

Это две разные функции для двух разных целей.

+0

Да, теперь это довольно ясно. Но как только вопрос вы не ответили: если изменение данных в виде текстуры изменит его и на текстуру, на которую ссылается ваше предложение: «Точно так же, как разделение указателя означает возможность для доступа к одной и той же памяти из двух разных мест ». ответ, вероятно, «Да»? –

 Смежные вопросы

  • Нет связанных вопросов^_^