Создаем 3D модель бочки. ЧАСТЬ 8 — Детализация модели, продолжаем: 3D normal map и ambient occlusion.

Здесь мы продолжим уделять внимание детализации 3Д моделей и рассмотрим, как их могут изменить 3d normal map и ambient occlusion карты.

Создаем 3D модель бочки. ЧАСТЬ 1 — Создаем заготовку для 3D модели бочки.

Создаем 3D модель бочки. ЧАСТЬ 2 — Продолжаем создавать модель деревянной бочки в Blender

Создаем 3D модель бочки. ЧАСТЬ 3 — Оптимизация 3D модели и альтернативные способы построения поверхностей 3D моделей

Создаем 3D модель бочки. ЧАСТЬ 4 – UV развертка 3D модели. Продолжение

Создаем 3D модель бочки. ЧАСТЬ 5 — Детализация 3D модели. Создание middlepoly 3D модели в Blender

Создаем 3D модель бочки. ЧАСТЬ 6 — Продолжаем добавлять детали 3D модели — торцы бочки.

Создаем 3D модель бочки. ЧАСТЬ 7 — Альтернативный способ создания детализации 3D модели

Создаем 3D модель бочки. ЧАСТЬ 8 — Детализация модели, продолжаем: 3D normal map и ambient occlusion.

Создаем 3D модель бочки. ЧАСТЬ 9 — Заканчиваем создание среднеполигональной middlepoly 3D модели

Создаем 3D модель бочки. ЧАСТЬ 10 — Низкополигональная, lowpoly 3D модель из среднеполигональной

Создаем 3D модель бочки. ЧАСТЬ 11: very lowpoly 3D модель из lowpoly модели

Создаем 3D модель бочки. Часть 12 – Закрыть дыры в 3D модели. Поверхности в Blender в примерах

Создаем 3D модель бочки. Часть 13 — Финализация 3D модели бочки и импорт в Unity3D 3D модели

После того, как вы вдавите торцы бочки, нажмите клавишу ‘S’, затем сочетание клавиш Shift+Z (чтобы исключить масштабирование выбранных торцов бочки по оси z) и переместите мышь так, чтобы немного сузить торцы бочки. Если вы посмотрите на внутренние поверхности, прилегающие к торцам бочки, то вы увидите, что толщина досок, образующих боковую поверхность бочки теперь утолщается по направлению к торцам бочки. Это расходится с геометрией бочки в реальном мире.

comparison barrels blender 3d normal map ambient occlusion map
На рисунке показаны три варианта бочки: слева – как она должна выглядеть в реальности, посередине – промежуточный вариант между моделью для игры и реальным миром и справа изображена получившаяся у нас игровая модель бочки для запекания карт. 3d normal map ambient occlusion map

Зачем мы так сузили крышку и дно бочки? Чтобы это понять, посмотрите на рисунок ниже, как эти три 3D модели бочки визуализируются в Unity3D. Для демонстрации в Unity3D была импортирована плоскость, к материалу которой были применены три запеченные карты: карта нормалей (normal map), карта освещения/затенения (ambient occlusion map) и карта высот/смещения (height map/displacement map).

caps barrels in unity3d 3d normal map
На рисунке показано применение 3 различных карт номалей модели бочки с разным диаметром крышки и дна бочки, соответственно – с разной толщиной досок, образующих бока бочки.

На крышке справа можно увидеть выраженные нормалями обратные стороны досок, из которых состоит боковая поверхность бочки, а вот на среднем и левом примере этой поверхности не наблюдается. Почему это так? Все дело в том, что идеальными фигурами для запекания карт на плоскость являются: полусфера, пирамида/усеченная пирамида, конус/усеченный конус и так далее, т.е. когда нормали полигонов модели, с которой происходит запекание, образуют положительный угол с нормалями полигонов модели, на которую выполняется запекание карт, в частности, карт нормалей. Посмотрите на рисунок ниже и вы все поймете, особенно, если читали про теорию карт нормалей в статье Часть 4. Теория карт нормалей серии статей Создание карты нормалей (normal map), карты смещения (displacement map), карты затенения/освещения (ambient occlusion map), самоовещенной карты нормалей и карты отражений/блеска (specular map) из текстуры или карты высот (heightmap) для игровых движков на примере Unity3D. В этой же серии вы можете прочитать про карты высот/смещения и другие карты, которые облегчают жизнь графическим процессорам, но усложняют ее 3D моделлерам, однако при этом, позволяя создавать из низкополигональных моделей шедевры, визуально близкие к их высокополигональным зазнавшимся собратьям.

3d normal maps barrels comparison ambient occlusion map
На рисунке показаны запеченные карты сверху вниз: карта нормалей, карта смещения/ высот и карта затенения/освещения для трех видов крышек бочек.

Посмотрев на карты нормалей, можно заметить, что нормали полигонов, расположенных перпендикулярно к поверхности, на которую они запекаются, просто не запекаются на карте нормалей, как и нормали полигонов спрятанных под/за другими полигонами. Так что, как бы мы не смотрели на бочку, мы никогда не увидим внутренних поверхностей бочек, если будем создавать 3D модели как в жизни, тем более что при создании lowpoly ассетов всегда существуют определенные допущения и погрешности, если мы хотим значительно снизить количество полигонов, используя lowpoly модели вместо highpoly и даже middlepoly3D моделей.

Посмотрите теперь, как выглядят карты нормалей крышек бочек на плоскости без карты ambient occlusion.

unity3d barrel maps without ambient occlusion map
На рисунке показана примененная к плоскости карта нормалей, запеченная с трех вариантов крышек бочек.

Совсем тоскливо, не правда ли?
Но, здесь каждый вправе сделать выбор в ту или иную сторону: в сторону реализма или в сторону боле ярко выраженных поверхностей.

Давайте все-таки пойдем по пути реализма, поскольку lowpoly 3D модель мы будем использовать в сцене лишь на большом удалении от камеры, так что разница не будет особо бросаться в глаза: на таком большом расстоянии, скажем, в условных сотне метров от камеры/нашего игрока, мало кто отличит разницу.

Автор Максим Голдобин (Maxim Goldobin aka MANMANA)

Добавить комментарий