Теоретически процедурные текстурные шейдеры можно использовать для тех же задач, которые выполняют шейдеры с доступом к готовым текстурам. На практике же иногда удобнее пользоваться процедурными текстурными тендерами, а иногда - шейдерами готовых текстур. Для того чтобы выбрать, какой шейдер написать для какой-либо конкретной задачи, нужно знать некоторые особенности этих шейдеров. Перечислим основные преимущества процедурных текстурных шейдеров.

□ Процедурно созданные текстуры требуют немного памяти по сравнению с хранимыми текстурами. Единственное представление текстуры - в алгоритме, определенном кодом процедурного текстурного шейдера. По сравнению с размерами хранимых 20-текстур, такое представление является очень компактным. Обычно это несколько команд, которые занимают гораздо меньше памяти, чем изображения (сравните несколько килобайт кода в процедурном тендере и несколько сотен килобайт или даже мегабайты для 20-текстуры высокого качества). Это означает, что процедурные текстурные шейдеры требуют меньше памяти графического ускорителя. Такие шейдеры еще экономнее, если на объект необходимо наложить ЗО-текстуру (сравните несколько килобайт и десятки или даже больше мегабайт для хранимой ЭИ-текстуры).

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

Процедурные текстурные шейдеры

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

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


⇐ Предыдущая| |Следующая ⇒