Текстурирование трехмерных моделей выполняется для оформления поверхности объекта иллюзорным рельефом. Наиболее часто используется простой способ, при котором фактура создается при помощи наложения карты цвета. В растровых плоских изображениях комбинация светлых и темных фрагментов создает иллюзорную текстурную геометрию. В рисунке отображается комбинация выпуклостей и углублений. При рассматривании готового объекта в наклонной позиции видна его плоская форма. Отрисовка и весь процесс моделирования за счет наложения карты цветов упрощаются и ускоряются.
Варианты текстурирования
Для создания иллюзии рельефа используются следующие варианты текстурирования:
- МИП. Несколько однотипных текстурных копий разного разрешения накладываются на поверхность. Разрешение зависит от расстояния от объекта до наблюдателя, параметров мощности видеоадаптера и других физических факторов.
- Параллакс маппинг. Изменение координат текстурных пикселей, освещение рельефа с учетом карты нормалей. Рельефность отображается максимально полно и детально.
- Нормал маппинг. Чтобы добиться желаемой текстуры поверхности, в этом варианте используются цветные карты нормалей. Освещенность рассчитывается по вектору, координаты которого задаются преобразованием RGB-каналов.
- Бамп маппинг. Черно-белую одноканальную карту высот со световым источником используют в работе с цветовой текстурой. Разница в освещении фрагментов обеспечивает проявление эффекта выпуклостей и впадин.
Карта смещений
Более затратный в отношении ресурсов метод текстурирования — Displacement map. Полигональная модель пополняется добавочными вершинами, которые по карте высот могут перемещаться ниже или выше плоскости полигона. При таком методе текстурный рельеф формируется реально, а не иллюзорно, как в других вариантах. Количество полигонов остается прежним, но геометрия модели усложняется. Метод карты смещений используется реже, чем другие варианты, из-за дороговизны прорисовки.
Идеально гладких поверхностей практически не существует в реальности. В некоторых проектах используются визуальные шумы, генерируемые процедурно.
Более подробно о текстурировании 3D-моделей и эффективных инструментах программирования читайте здесь: https://c3dlabs.com/.