Что такое текстуры и как они работают в 3D-графике
Когда смоделировать объект слишком сложно, в ход идут текстуры. Разбираемся, как с их помощью создают реалистичные модели, не тратя ресурсов.
vlada_maestro / shutterstock
За точную передачу геометрии 3D-объекта отвечает количество полигонов — тех самых векторных многоугольников, из которых состоит модель и с которыми работает дизайнер при её создании.
Очевидно, что чем их больше, тем выше будет уровень детализации готовой модели. Но нельзя добавлять их до бесконечности — создание и отрисовка займут слишком много времени.
Сделать цифровой образ реалистичным, сохранив минимальное количество полигонов, позволяют текстуры и материалы.
Текстура (иногда её называют картой) — это растровое изображение, накладываемое на поверхность модели для придания ей цвета, свойств окраски или иллюзии рельефа.
Процесс создания текстур называется текстурированием или 3D-мэппингом (от англ. map — карта).
Как используются текстуры
Допустим, нам нужно визуализировать деревянный куб. Для этого мы можем создать простой куб и изменить его геометрию, чтобы придать ему вид дерева. Вместо этого лучше добавить карту цвета (англ. color map) — растровое изображение, которое будет наложено на полигоны. Именно её чаще всего имеют в виду, когда говорят о текстурах.
Изображение будет наложено на модель, но геометрия останется неизменной. Так мы создадим видимость рельефа, не тратя много ресурсов на моделирование и компьютерную отрисовку.
Готовая модель выглядит неплохо, но на ней нет микрорельефа — небольших трещин, впадин и выпуклостей, которые видны на текстуре. Особенно сильно это заметно, если взглянуть на углы — они абсолютно прямые.
Исправить это — придать рельефность — можно, добавив больше полигонов, но гораздо быстрее будет воспользоваться картой высот (англ. height map), которую также иногда называют картой рельефа. Это чёрно-белая текстура, которая позволяет сделать рельеф реалистичным.
Существует несколько видов карт высот, у каждой свои особенности:
- Bump map (англ. bump — кочка, выпуклость) создаёт иллюзию рельефа, но не меняет геометрию объекта. Для этого на цветовую текстуру компьютер накладывает небольшие искажения, чтобы создать иллюзию неровностей.
- Parallax map (параллакс — иллюзия движения объекта относительно фона, которая видна движущемуся наблюдателю) меняет положение отдельных участков текстуры при отрисовке. То есть при отрисовке parallax map меняется положение отдельных пикселей, а не вершин.
- Displacement map (англ. displacement — смещение) меняет геометрию объекта.
Вот пример displacement map:
При отрисовке модели с такой текстурой добавляются новые вершины, которые смещаются относительно полигона — поднимаются или опускаются. И мы получаем следующий результат:
Количество полигонов исходной модели не меняется, но геометрия объекта всё же становится более сложной во время отрисовки, поэтому здесь виден реальный рельеф, а не его иллюзия.
Карта смещений — одна из самых реалистичных карт высот. Но она и более затратная, так как во время отрисовки добавляются новые вершины. По этой причине displacement map используют не всегда, по возможности заменяя её другими текстурами. Например, комбинацией bump map и карты нормалей (англ. normal map) или parallax map — в зависимости от того, какого эффекта нужно добиться.
Процедурно генерируемые текстуры
На объект можно накладывать не только готовые текстуры, но и генерируемые компьютером. Например, можно создать текстуру шума (англ. noise texture) — изображение, содержащее визуальный мусор (шум).
Текстура шума нужна, чтобы поверхность модели не выглядела слишком идеальной — в реальной жизни практически не встречаются безупречно ровные или идеально окрашенные предметы. Всегда есть какие-то потёртости, пятна, шероховатости и другие небольшие дефекты.
Использование шума помогает добиться различных визуальных эффектов. Например, если наложить его на цветовую карту, можно создать эффект разводов, мазков кистью, выцветания или потёртости.
Если использовать шум в качестве displacement map, это поможет быстро создать реалистичную штукатурку, глину, цедру апельсина, поверхность Солнца, плавленый сыр, панировку, тесто для пиццы и многое другое.
Практически любые поверхности можно имитировать с помощью шума, если подобрать правильные параметры.
Заключение
Существуют и другие виды текстур. Вот некоторые из них:
- Карты бликов (англ. specular map) позволяют указать, от каких частей свет должен отражаться, а от каких нет.
- Карты теней (англ. shadow map) позволяют заранее определить, как будет падать тень на модель. В основном карты теней используются в играх, потому что значительно ускоряют отрисовку.
- Диффузные текстуры (англ. diffuse map) — карта цвета без бликов.
- Карта смешивания (англ. stencil map) содержит информацию о распределении других текстур на поверхности.
Использование текстур значительно ускоряет работу 3D-художника. Даже если вы создаёте модели в мультяшном стиле, без текстур не обойтись, потому что для этого понадобится как минимум указать цвета разных частей объекта.
Если интересуетесь 3D-графикой и хотите профессионально заниматься моделированием и текстурированием, вам поможет наш курс
для 3D-художников.