В чем разница между bump, normal и displacement

В статье мы подробно рассмотрим отличия карт bump от normal и displacement.

Вы столкнулись с трудностями при назначении карты bump на 3D-объект? Не переживайте! Многие 3D-художники, которые только начали изучать с 3D-текстурирование, испытывают сложности в этой области, не зная, какой тип карт выбрать: bump, normal и displacement.

Все три типа карт создают дополнительную детализацию на поверхности геометрии. Некоторые из этих деталей «настоящие», другие нет. Итак, попытаемся разобраться, в чем же заключается разница между картами bump, normal и displacement.

Что такое карты bump

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

Обычно, карты bump - это черно-белые 8-битные изображения. И это только 256 цветов черного, серого или белого. С помощью этих значений карты bump сообщают 3D-редактору всего 2 вещи: деформировать геометрию вверх или вниз.

Когда значения карты bump близки к 50% серого, с поверхностью геометрии практически ничего не происходит. Когда изображение ярче, ближе к белому, детали выдавливаются на поверхности геометрии. Если изображение более темное, ближе к черному, детали вдавливаются в поверхность геометрии.

Карты bump отлично подходят для создания на поверхности модели мелкой детализации, например, пор или морщин на коже. Кроме того, их сравнительно легко создать в таком 2D-редакторе, как Photoshop, помня при этом, что работать нужно только с черно-белыми цветами.

Минус же карт bump заключается в том, что детализации, созданной с их помощью, можно достаточно быстро лишиться, если посмотреть на объект с неверного ракурса. Кроме того, при использовании карт bump силуэт модели остается неизменным, поскольку они создают фейковую, а не реальную детализацию.

Что такое карты normal

Карты нормалей или normal-карты - это улучшенные карты bump. Normal-карты, как и карты bump, создают фейковую детализацию, не добавляя дополнительных деталей геометрии в сцене. В результате, карты нормалей создают на поверхности модели иллюзию детализации, но эта детализация в корне отличается от той, которую создают карты bump.

Как мы уже знаем, карты bump используют черно-белые цвета, чтобы вдавливать или выдавливать поверхность геометрии. Normal-карты работают с RGB-информацией, которая точно отвечает X, Y и Z значениям в 3D-сцене. Эта RGB-информация сообщает 3D-редактору точное направление нормалей каждого полигона поверхности. Ориентация нормалей поверхности, которые часто называются просто нормалями, сообщает 3D- редактору, в какой цвет окрасить тот или иной полигон.

Normal-карты бывают двух типов и выглядят совершенно по-разному в 2D-пространстве.

Наиболее распространенным типом карт нормалей являются normal-карты типа tangent space, которые зачастую сочетают в себе лиловый и синий цвета. Этот тип карт нормалей лучше всего подходит для мешей, которые должны деформироваться при анимации. Normal-карты типа tangent space идеально подходят для персонажей. Для объектов, которые статичны и не испытывают деформаций, больше подходят карты нормалей типа object space. Эти карты окрашены в различные цвета и просчитываются немного быстрее normal-карт типа tangent space.

При использовании карт нормалей нужно понимать несколько моментов. В отличие от bump’а эти карты сложнее создать в 2D-редакторе типа Photoshop. Запекаются normal-карты с хайпольного меша на лоупольный. Однако, есть несколько путей их редактирования. Например, возможность редактирования карт нормалей представлена в MARI.

Кроме того, normal-карты лучше других вписываются в большинство пайплайнов. Но в отличие от карт bump в этом правиле есть исключение. И касается оно мобильного геймдева, поскольку аппаратные средства начали «понимать» карты нормалей сравнительно недавно.

Что такое карты displacement

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

Карты displacement выгодно отличает то, что их можно запечь с хайпольного меша или нарисовать вручную. Карты displacement, как и карты bump, работают с черно-белыми значениями цветов. При этом с легкостью можно использовать и 8-битные карты displacement, но лучший результат можно получить с помощью 16- или 32-битных карт displacement. И, хотя, 8-битные карты displacement лучше выглядят в 2D-пространстве, в на рендере они могут вызвать странные артефакты и пр. из-за недостаточной информации.

А вот что касается времени просчета, то тут все далеко не так круто. Создание дополнительной детализации в режиме реального времени достаточно трудоемкий процесс, с которым 3D-редактор справится не быстро. Кроме того, большинство 3D-редакторов просчитывают displacement уже на рендере. По сравнению с картами bump и normal карты displacement могут серьезно сказаться на времени рендера.

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

Одновременное использование всех карт

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

Рисование вертикальных капель

В Photoshop создайте новый документ с черным фоном и с помощью инструмента кисти, маленьким размером. Жесткие края и белый цвет делают нерегулярные вертикальные штрихи, имитирующие падающие капли.

Рисование полукруглых капель

В новом слое создайте белую сферу и дублируйте его в новом слое с помощью инструмента Deform deformation. Повторите этот шаг несколько раз, деформируя сферу с разными формами. Когда у вас есть значительное количество деформированных сфер, дублируйте их и распределите по всему холсту, изменив их размер. Таким образом, у нас будут капли разных форм и размеров. Избегайте перекрытия.

Совмещение карт

Выделите все слои и объедините их так, чтобы остался только один.

Создание карты нормалей

Мы будем использовать CrazyBump , это программа для создания карт нормалей и карт displacement из двумерных изображений, есть похожие бесплатные программы: генератор SSbump , xNormal и внутри фильтров Photoshop, также имеет возможность создавать карту нормалей.
В CrazyBump откройте изображение, которое вы сохранили. Откройте карту высот из файла, и настройте значения, как показано на изображении.

Материал

Для этого урока я создал окно со стеклом, где я поместил текстуру. Для этого я создам материал V-Ray со 100% белой отражательной способностью и рефрактностью. В поле Bump я поставлю VRayNormalMap и в этом изображение, которое мы сохранили в CrazyBump.

Аналогично эта операция делается и в Короне, только для Короны используются свои шейдера.

Normal bump. Zbrush to maya and 3ds max.

1) Проблемы новичка с созданием и наложением карты нормалей.

Основная проблема в том, что не смотря на обилие информации в гугле, разобраться с возникающими проблемами с одного захода совершенно не получилось у меня.

Вторая проблема в том, что Zbrush генерит эти карты нормалей как попало. Во всяком случае, до тех пор пока у меня как у новичка в этом деле руки растут из одного места, четкого понимания до сих пор нет.

Проблему я уже описал несколькими постами ниже.

А теперь просто хочу как-то изложить способы решения более структурно и в одном месте.

И так, есть модель, сделанная в высоком разрешении HD в Zbrush:

На модель назначены текстурные координаты (в примере для простоты понимания это PUV-Tiles)

Переходим в самый нижний уровень subdividion для модели и генерим, и сохраняем детали в карту нормалей с включенными кнопками TANGENT, ADAPTIVE, Smooth UV с помощью кнопочки create normal map

Потом жмем кнопочку CLONE NM и сгенеренная текстурка появляется в окошке текстур, откуда её с помощью кнопочки export можно сохранить на диск.

ATTENTION: при сохранении в PSD у меня лично 3D max вылетает нафик, поэтому я сохраняю только в TIFF

"Проблема" номер 1 (для Maya) - видим, что получилась какая-то плитка вместо карты

Решается просто - либо при экспорте текстуры из Zbrush в настройках жмем кнопку FLIP V либо открываем текстуру в фотошопе и делаем Image > Image rotation > Flip canvas vertical сохраняем и видим, вуаля...

Вуаля, да не совсем. Иногда появлялся второй баг, как в MAYA так и в 3DS MAX. Зависимость пока еще я так и не проследил четко

Вот болванка (3DS MAX 2011):

На неё назначен модификатор TURBOSMOOTH и в настройках материала в слот BUMP положена карта NORMAL BUMP

Включаем рендер и видим (обратите внимание на губы). Снова плитка:

Кстати в MAYA эта же плитка вчера выносила мне мозг. И если в Максе этот баг лечится просто: надо в настройках карты Normal Bump поставит галочку SWAP RED and GREEN

То в Майке (а я в ней сижу только первый день) я так и не нашел, где это сделать. Кстати в той же майе мне выносит мозг одна штука - войти в режим настройки какой-нибудь опции можно, нажав на кнопочку [>], а выйти обратно ну никак не получается. У меня просто вкладки меняются одна на другую.

2) Но есть еще один способ, который позволит не мучиться с настройками в максе и майе. Это способ - поменять каналы в фотошопе (красный и зеленый).

Если нажимать такую же кнопочку в zbrush, то проблема у меня нифига не лечится почему-то.

Идем в 3DS MAX (или кому что ближе) и вот теперь, вроде бы вуаля... уфф...

Кстати в настройках для VRAY в карте VrayNormalBump точно также не предусмотрена галочка

swap RED and GREEN.

Happy modelling, brothers and sisters!

На самом деле у меня еще вопросов гораздо больше, чем ответов, но надеюсь, что эти лекарства

избавят любопытных от той головной боли, которая была у меня все эти дни

Статьи по теме: