А теперь некоторые недостатки процедурных текстурных шейдеров.

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

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

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

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

Часто применяется и гибридная технология. Например, сначала можно выполнить рендеринг мяча для гольфа в основном цвете, а потом наложить нарисованную текстуру с потертостями и логотипом и процедурно сгенерированную рельефную поверхность. С помощью хранимых текстур также можно контролировать или ограничивать процедурные эффекты. Если на мяче для гольфа есть травяные пятна и важно правильно отобразить их, художник может нарисовать полутоновую карту, с помощью которой шейдер сможет определить, где эти пятна накладывать (например, там, где на карте есть черные области), а где не накладывать (белые области). Шейдер может считывать эту управляющую текстуру и использовать ее для выполнения плавного перехода от нетронутой поверхности к поверхности, испачканной травой.


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