Детальное текстурирование
06.09.2022Детальное текстурирование (англ. Detail mapping) — программная техника в трёхмерной компьютерной графике, которая позволяет улучшить детализацию текстур на близком расстоянии от камеры. Конечный результат создаёт иллюзию использования текстуры огромного разрешения.
При приближении камеры к полигональной модели текстура становится размытой. В случае достаточного объема свободной памяти размытие может быть устранено увеличением разрешения текстуры. Однако хранение каждой текстуры в огромном разрешении не является практичным решением. Детальное текстурирование решает проблему другим путём:
- Базовая текстура оставляется в разумном среднем разрешении
- Создаётся детальная текстура с крупномасштабным изображением мелких деталей (отдельные травинки, галька, структура древесины и т. д.)
- Полученная текстура обесцвечивается
- Фильтром верхних частот удаляется всё, кроме самых мелких деталей
- Фильтром коррекции гистограммы устанавливается средняя яркость на уровне 0.5
- Обе текстуры смешиваются в пиксельном шейдере
- Перед смешиванием текстурные координаты детальной текстуры масштабируются, чтобы детальная текстура повторялась в несколько раз чаще базовой
- Для снижения заметности повторений детальной текстуры масштаб выбирается нецелочисленным
- Цвет базовой текстуры умножается на цвет детальной, умноженный на 2 (для сохранения исходной яркости)