Наша новая игра 8 сентября в раннем доступе на steam



Как добавить реалистичные трещины в 3ds Max и VRay

В результате этого урока у вас должны получиться процедурные (т.е. созданные без использования текстур) трещины, как на заглавной картинке (она кликабельная).

Я использовал 3ds Max 2016 Ext.1 + SP1 и V-Ray 3.20.03.

Поскольку это процедурные трещины, то они совсем не зависят от UV-координат, а значит их можно добавлять на 3D объект, который не имеет нормальной UV развёртки.

Но есть и обратная сторона медали - такие трещины зависят от размеров объекта. Поэтому, чтобы у вас получились в точности такие трещины как у меня, вы должны использовать те же самые системные единицы, что и у меня, а также создать сферы такого же радиуса.

Поэтому заходим в Customize -> Units Setup -> Жмём большую кнопку вверху System Unit Setup -> Выставляем, чтобы 1 unit был равен 1 сантиметру. Всё, больше ничего не трогаем здесь.

Дальше создаёте GeoSphere радиусом 42 см.

Приступаем к созданию самой трещины.

Логика тут простая:

  1. Берём стандартную процедурную карту Noise (или намного продвинутую Bercon Noise, о которой я писал тут).
  2. Проделываем с ней манипуляции, чтобы остались только края, а не чёрно-белые пятна.
  3. Используем эту карту для выдавливания трещин с помощью дисплейсмента.
  4. Используем слегка модифицированную версию карты из п.2, чтобы сделать материал внутри трещин отличающимся от основного материала.

1. Логика создания карты трещины.

цепь нод для создания процедурной текстуры трещины в 3ds Max

Вот такая сеть нод (дальше я будут карты (maps) называеть нодами, поскольку они соединяются в цепь нод) позволяет создать процедурную текстуру трещины в 3ds Max. Это я привёл скриншот из редактора материалов в режиме нод (Slate Material Editor). Если вы еще не перешли на нодовое отображение, то очень рекомендую. Это во много раз улучшает восприятие логики работы сложных материалов, а также убыстряется процесс работы с материалом.

Чтобы переключится в этот режим вам нужно -> открыть редактор материалов (клавиша M) -> в верхнем меню выбрать пункт Modes (режимы) -> переключиться с Compact Material Editor на Slate.

Теперь собственно объясняю логику. Читаем сеть нод слева направо.

За основу я взял карту BerconNoise (обозвал её JustNoise). Потом эту карту смешал саму с собой с помощью ноды Composite (обозвал её Difference, поскольку режим смешивания нужен Difference). Только на один вход ноды Composite я подал оригинал, а в другой слот - инвертированную версию (инвертировал с помощью стандартной ноды Color Correction, которую назвал Invert). И в конце, с помощью ноды ColorCorrect (это отдельный бесплатный плагин, который можно скачать отсюда) я обрезал величины цвета так, чтобы только трещина осталась чёрной, а всё вокруг неё стало белым.

2. Теперь о том, что делает каждая нода (карта).

2.1. BerconNoise.

Самая первая карта BerconNoise под названием JustNoise создаёт шум, на основе которого мы и будет делать трещину. От настроек этой карты зависит размер трещины, их плотность и детализированность. Мои настройки таковы:

Настройки карты BerconNoise

Тут самое главное - это размер Size = 60. Размер влияет на размер трещин.

Также важна настройка Fractal с детализацией (Levels) = 15 (но думаю тут и 7 должно было хватить). Levels влияет на то насколько детализированной будет трещина.

2.2. Color Correction

Дальше карта Color Correction. Тут нужно поставить лишь одну галочку - Invert:

Настройки карты Color Correction

2.3. Composite.

Следующая карта Composite:

Настройки карты Composite

Здесь главное создать два слоя и верхний слой установить в режим смешивания Difference. В итоге мы получим чёрные края/линии и серые пятна между ними.

2.4. ColorCorrect.

Последняя карта - ColorCorrect, которую я назвал ClampNormalize:

Настройки карты ColorCorrect

Здесь важно поставить галочку Clamp для "обрезания" цвета в пределах от 0 до 0.05. Таким образом мы указываем 3ds Max'у, что нам нужно превратить весь светлый цвет в тёмно серый (0 - это чёрный, а 0.05 - это очень близко с чёрному). А отметив галочку Normalize, мы заставляем НОВЫЙ УРЕЗАННЫЙ диапазон цветов (от чёрного до тёмно серого) растянуть снова на ВЕСЬ
диапазон оттенков (от чёрного до белого).

Таким образом, изменяя в будущем верхний предел параметра Clamp, мы сможем контролировать ширину трещин. Чем больше этот параметр, тем больше ширина.

Конкретно в моём примере, значение 0.05 означает узкие трещины (как на заглавной картинке). А если поставить там 0.1, то я получу широкие трещины (картинка ниже кликабельна):

широкие трещины на материале 3ds Max

3. Теперь разберёмся с настройкой дисплейсмента.

Вот эту текстуру, что мы получили в конце цепи нод можно запихивать в слот Texmap модификатор VRayDisplacementMod, который мы накинем на нашу Геосферу. Его настройки будут следующими:

настройки дисплейсмента

Тип дисплейсмента Type - 3D mapping. Величина дисплейсмента Amount - 1 см. Поправка Shift -1см (минус один см). Галочка, что это статическая геометрия Static - включена. Она ускорит рендер дисплейсмента, но если геометрия будет как-то изменятся во времени (не будет статичной), то появятся артефакты.

4. Настроим материал.

Материал может быть каким угодно. Я выбрал, что верхний - это будет блестящий толстый слой якобы белой краски, а сами трещины шероховатые и тёмные.

Подробно на настройках V-Ray материалов я останавливаться не буду, ведь я об этом написал замечательную серию статей.

Вот мои настройки блестящего белого материала:

настройки блестящего материала vray

Единственный новый параметр - это новый тип BRDF: Microfacet GTR (GGX). Я стараюсь его использовать везде, где только можно, ведь он прибавляет реалистичности материалу.

В результате, если мы отрендерим наши полученные трещины с таким материалом, то получим следующий результат (кликабельно):

трещины с одним материалом и дисплейсментом

Теперь нужно настроить материал для трещин:

настройки шершавого материала трещин vray

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

Для этой цели используем материал VRayBlendMtl со следующими настройками:

 настройки vray blend материала

Тут также всё просто. Базовый материал - это мой шершавый материал. Материал покрытия (Coat material) - это мой блестящий материал.

А вот моя карта NarrowClampNormalize в слоте Blend amount, по которой эти два материала будут смешиваться немножко хитрая.

За основу я взял карту ClampNormalize из пункта 2.4, но в ней я так подправил верхний и нижний лимиты параметра Clamp, чтобы они были почти одинаковыми:

карта Narrow Clamp Normalize

При этом я сделал верхний лимит НОВОЙ карты слегка ниже верхнего лимита СТАРОЙ карты (которую я использовал для дисплейсмента). Для дисплейсмента я использовал значение 0.05, а для смешивания материалов (как видно со скриншота выше) - 0.045. Эта малюсенькая разница позволила закрасить не ВСЮ трещину тёмным шершавым материалом, а оставить на самом верху трещины узкую полоску из белого блестящего материала. Таким образом, я сымитировал толщину краски.

Ну а подняв нижний лимит почти до верхнего (было значение 0.0, а стало 0.04) я закрасил ВСЮ трещину шершавым материалом на 100%. Если бы я оставил там 0.0, то трещина была бы на 100% закрашена в шершавый материал ТОЛЬКО в самых глубоких её местах. А там где трещина не глубокая, там было бы смешение двух материалов (блестящего белого и шершавого тёмного) в какой-то пропорции. Это бы давало совсем нереалистичный результат.

5. Нюансы.

Если посмотреть на рендер из пункта 4, то видно, что верхний блестящий материал выглядит совершенно стерильно гладким и поэтому нереалистичным.

Чтобы это хоть как-то быстренько исправить, я добавил карту Normal Bump в слот Bump блестящего белого материала. В слот Normal я положил текстуру микроцарапин, а в дополнительный слот Additional Bump я положил карту Noise с мелким шумом в режиме Turbulence (цепь нодов смотрите на скриншоте ниже). Более подробно о том, как сделать текстуру микроцарапин и как правильно настроить карту Normal Bump я рассказывал здесь.

Царапины и бугристость



Подпишитесь на обновление блога (вот 3 причины для этого).
Введите ваш e-mail:





Вам понравилась статья? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.

Введите ваш e-mail (используется только для отправления обновлений блога):

комментариев 8 к статье “Как создать реалистичные процедурные трещины 3ds Max, V-Ray”

  1. А у меня вопрос к автору, пробовал ли он сабстанс дезигнер? Всё таки там возможностей побольше в плане реализации различных процедурок.
    Плюс можно вывести различные рульки для каждой ноды, что бы иметь возможность динамически изменять различные параметры.
    Плюс там есть утилиты-конверторы уже готового пбс шейдера, в стандартные текстуры для использования оных с обычными рендерами.

    • К сожалению, еще не дошли руки у меня к этому пакету (я редко сам занимаюсь текстурированием).

  2. Не могу поставить ColorCorrect ни в 2016 ни в 2014.

    • А какая ошибка?

      • Извиняюсь, что сразу не ответил. У нас временная разница большая, и я уже спал, живу на Сахалине. Дело в том, что я загружаю плагин как положено в папку plagins\plagins , а Max его не видит. В свитке Maps его нету вообще, Может его как-то по другому запускать? Или я его установил неправильно? Я из новичков, потому мог что-то упустить. Может подскажите?

        • Если Макс не видит плагин, то нужно добавить путь к плагину внутри 3ds Max: Customize -> Configure System Path -> закладка 3rd Party Plug-Ins -> жмёте кнопку Add… и добавляете путь. Всё плагин должен заработать.

  3. Спасибо за пост !!!
    Побаловался и вот что получилось:
    http://3ddd.ru/galleries/gallery/nie_boisia_izmienienii
    Еще раз спасибо за очень дельную информацию =)

Извините, в данный момент комметарии закрыты.

© 2008 - 2018 3dyuriki.com
Для связи со мной 3dyuriki@gmail.com