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



Создание реалистичных микро шероховатостей V-Ray

Я нашел в сети отличный урок по созданию реалистичных микроцарапин с помощью Vray (и 3ds Max). И решил выложить перевод. Я исправил некоторые неправильные места в оригинальной статье, а также дополнил.

Принципы создания такого шейдера универсальны, а значит вы сможете их применить не только в V-Ray + 3d Max, но и в любом другом 3D-пакете (Maya, Houdini...)

Пример поцарапанной поверхности

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

Довольно долго я пытался добиться этого эффекта в VRay, но… безуспешно.

Я поискал решения на форумах, а также поэкспериментировал и думаю, что нашел метод, который дает хорошие результаты. Естественно - сделал урок 🙂

Прежде всего, забудьте об использовании обычной текстуры Bump; по опыту скажу - она не даст нужного эффекта. Для имитации этих чрезвычайно крошечных царапин Вам нужно использовать Normal Bump (карту нормалей).

Рисовать ее лучше в фотошопе, так как там вы можете легко сделать ее тайловой (бесшовной).

Нарисуйте кучу царапин в центре изображения, следите, чтобы ни одна из них не касалась границ изображения. Затем используйте фильтр Offset (Filter -> Other -> Offset). Сместите с помощью него вашу текстуру ровно на половину по обеим осям и нарисуйте еще несколько царапин в белых областях. Продолжайте, пока все не “расцарапаете”. [в оригинальной статье есть видео, где автор показывает, как он это делает]

Вот полученная мною карта (если кликнуть, то можно скачать в большом разрешении):

Текстура с микроцарапинами

Теперь, используя NVidia Normal Map filter (бесплатный плагин для Photoshop), сгенерируем карту нормалей.

Текстура нормалей с микроцарапинами

Важно! Не используйте карту нормалей приведённую выше. Она здесь приведена только для примера. Вам нужно создать карту в разрешении 4k самостоятельно, либо скачать мою, иначе у вас не получится такой же результат.

Прекрасно, теперь, когда у нас есть карта нормалей, мы можем создать шейдер VRay.

Материал будем создавать идеально отражающим. Берем VrayMtl, цвет в слоте Diffuse - чисто черный, в слоте Reflection - чисто белый, галочку возле Fresnel reflections - НЕ ставим.

Настройки зеркального VRay материала

В слот Bump кидаем стандартную максовскую Normal Bump и загружаем туда нашу полученную карту нормалей. Проследите, чтобы Gamma для загружаемой карты нормалей была выставлена в 1.0 и отключен Filtering (на свитке Bitmap Parameters). В поле напротив слота Normal я выставлю силу нормалей - 1,5.

Настройки Normal Bump

Normal Bump с слоте Bump

Теперь конвертируем материал в VrayBlend (оставляем существующий материал как подматериал) и дублируем первый слой несколько раз.

Для каждого последующего слоя покрытия (Coat Material), делайте силу нормалей немного меньше. Это создаст более гладкий переход вокруг бликов на микро потёртостях.

Например, я использовал 1,5 для базового материала, 1,0 - для первого слоя, 0,5 - для второго, и, наконец, 0 - для третьего. Последний слой даст чистое отражение без царапин. Изменяя Blend amount (силу смешивания) для этого (третьего) слоя, вы контролируете силу царапин. Чтобы сделать поверхность мене изношенной, можете накрутить силу смешивания (сделать цвет смешивания белее) для третьего слоя:

Настройки материала VRayBlendMtl

В итоге мы получаем вот это:

Мелкие царапины изношенност на чайнике

В принципе - это все!

Если Вам нужны такие царапины на полированном пластике - нет проблем. Создаёте новый VrayMtl, настраиваете цвет Diffuse и т.д. и используем этот материал в качестве Base material в новом VrayBlend.

Теперь добавляем наш шейдер поцарапанных отражений в слот Coat. А в слот Blend назначаем карту Falloff и выставляем Falloff Type - Fresnel, в параметрах указываем нужное нам значение IoR (как правило от 1,4 до 3).

Дерево шейдера пластика с микро царапинами

Настройки френелевых отражений для поцарапанного пластика

Та-да! Ваш потёртый пластик!

Чайник из затёртого пластика

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

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

У меня есть серия шикарных статей про то, что делает 3D картинку реалистичной.

Также читайте статью как работает материал Blend, чтобы лучше его понять.

Возможно, Вам известен иной метод достижения подобного результата. Если да - поделитесь им, пожалуйста, в комментариях.



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


Спасибо 3dkostas за помощь с переводом.

Источник.




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

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

комментария 32 к статье “Как сделать реалистичный изношенный затёртый материал с микроцарапинами в VRay + 3ds Max”

  1. О, спасибо, замечательный урок)

  2. Статья замечательная, но заголовок поправьте… 🙂 («реалистиНЧые»)

  3. крутатенюшка ;))))

  4. Не получаются микроцарапины. Слишком крупные и жирные. В общем не так как в туториале.
    Рендер
    Царапины на чайнике не получились

    • У меня всё получилось.
      Поиграйтесь с tile текстуры normal (сделайте tile не 1, а 3, к примеру). Поиграйтесь с силой смешения в Blend.

  5. Спасибо. Лучше, но все ровно не такой результат как у автора. Такое ощущение что со светом что то. И силу бампа крутил, и бленд, и тайлинг.
    Улучшенные царапины на чайнике

    • Я открыл вашу сцену. Что-то как-то у вас всё в сцене напутано с шейдером. Также ИС стоит очень яркий (ярче солнца на улице 😉 ), нет глобалки, стоит Rуinhard (не знаю как это влияет, но я на Linear тестил). Ну и самое главное, у вас настройки семплинга очень плохие (накрутите Max Subdivs или color threshod). Именно из-за них получаются такие зубчатые и крупные микроцарапины.

  6. Лучше, спасибо 🙂 Но как то…
    Антиалясинг отключил. Глобальное освещение и Linear поставил. То что Вы сказали (Max Subdivs, color threshod) накрутил.
    Не получаются царапины на металле

    • Всё еще много шума из-за недокрученных Max Subdivs, color threshod. А значит и микроцарапины не такие мелкие и гладкие

  7. Ну что-же… Этому «материалу(шейдеру)» удалось меня хорошенько пнуть и заставить перейти на «Slate Material Editor». Ей-богу запарился в экспериментальных целях раскидывать instance-слоты normal-карт по всему Material-Editor-у и переключаясь туда-сюда (с подтормаживанием) подкручивать параметры, вечно забывая какую карту в каком слоте я подкручиваю…

    В Slate-Режиме, сразу все карты (ноды) шейдера видны и можно без подтормаживаний между ними переключаться не забывать какую часть шейдера я редактирую… Ну или у меня просто «Maya/UE — Головного Мозга» и я к нодам уже так привык что мне в них удобнее работать…

    • Не-не (не Maya головного мозка :)))), чистую правду написали. Я тоже как раз после этого урока перешёл на нодовый Slate ME :))))

  8. У меня возникла проблема… при рендере.
    На объекте отражения дублируются 4 раза…
    Отражение на поверхности дублируется 4 раза vray

    • У меня та же беда. Может кто-то знает, что делать? В гугле ответ не нашел (может не там искал?)

      • Это связано с тем, что вы при импорте нормал карты не указали гамму 1.0.

        А если вы делали нормали не с помощью указанного в статье плагина, то возможно у вас не получился чистый фиолетовый цвет [RGB 128,128,255] между царапинами.

  9. Вроде похоже, но все равно у автора они как то мельче и реалистичнее что ли….

  10. I get triple reflections with this method, been trying all day to fix it but I am stumped. Once I add a Normal Map to the Normal slot on the first shader the reflection shifts but the bumps stay in the same place. If the change the amount from 1.0 to 1.5 it shifts even more. If I fallow through with the tutorial with 1.5, 1.0, .5 and .0 I get 3 different offset reflections. I tried a different Normal maps but they all seem to cause this problem. I tried just a solid color like red, and no shifting, works perfectly. Any ideas why reflections shift when you add a normal map?

  11. у меня полный факап….как у автора не вышло( прочла все предыдущие комменты….накручивала и одно и другое, и всякие способы пробовала. и даже с текстурой представленной пробовала. в оригинальной статье тоже нет ответа на вопрос. видимо автор что-то утаил от публики. и как у Милославского тоже не вышло, даже не смотря на то что brute force кол-во семплов аж 48 (!)

    • Покажите, что у вас получилось.

      • Юрий, ответила вам по почте, если поможете то огромное вам спасибо!

    • Я посмотрел вашу сцену.

      Первое что я заметил — это то, что у вас фиолетовый цвет на карте царапин scratchmap.jpg получился RGB [129:128:255]. Я не знаю почему так произошло, но фиолетовый цвет должен быть ЧИСТЫМ — 128:128:255
      Возможно это из-за метода, которым вы сохраняли эту текстуру (старайтесь не использовать форматы сжимающие с потерей качества, такие как JPG) или вы что-то в настройках напутали…
      Из-за этой ошибки могут появляться вторичные отражения.

      Микроцарапины как раз и имеют такое свойство, что их видно ТОЛЬКО возле ярких источников света. Это не баг — это фича 😉

      Шумность — это из-за недостатка порога цветности между соседними пикселями (Color threshold). У вас он стоит 0.1 — это очень много. Если грубо, то это означает, что разница между цветом двух соседних пикселей может быть 10% и поэтому царапины кажутся шумом, а не сплошными линиями.
      Поставьте Color threshold = 0.003
      Также на шумность влияет количество семплов на пиксель. В вашем случае за это отвечает параметр Max. Rate в свитке Adaptive Subdivision image sampler (поскольку в качестве сэмплера вы выбрали Adaptive Subdivision). Я бы его поставил 8 (у вас там 2).

      Также я бы убрал фильтрацию картинки (снять галку Image filter), чтобы картинка не замыливалась (тогда царапины будут еще чётче). Image filter — это постэффект. Т.е. его вы сможете и самостоятельно ПОТОМ добавить в Фотошопе.

      Также можно еще уменьшить текстуру царапин с помощью увеличения количества тайлов (Tiling = 13, к примеру. У вас там сейчас 5).

      Если вам позволяет ваша версия VRay, то я бы вместо Blinn указал бы тип блика GGX (это в настройках материала, на свитке BRDF). Он более реалистично просчитывает блики.

      По-поводу оптимизации вашей сцены. Вы очень сильно накрутили глобальное освещение (GI) и сабдивы в свойстве отражений материала (у вас Reflect Subdivs 32), но эти параметры никак не влияют на качество отрисовки царапин, поэтому я бы значительно снизил их.

      P.S. Извините за поздний ответ. Только сейчас нашлось свободное время глянуть вашу сцену.

      P.P.S. Шикарного вам настроения! 🙂

  12. Путем неимоверных усилий смог добиться только появления царапин в местах ярких направленных бликов которые имеют очень резкие границы.Подскажите в чем может быть дело?

  13. Где взять этот плагин для фотошоп?

  14. Ради справедливости — на полгода раньше чем VisCorbel (который известен своими заимствованиями) — обсуждение и решение этой проблемы
    http://3dcenter.ru/forum/index.php?showtopic=115694

  15. Большое спасибо за урок и текстуру

  16. Здравствуйте. никак не получается получить царапины, от слова совсем. Повторяю все идентично шаг за шагом, а царапин нет. Не подскажете что делать?

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

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