Наконец-то Displacement в Unreal Engine 5.3. Делаем за 5 минут

Наконец-то в Unreal Engine 5 появился Displacement. Можно делать его на уровне материалов и применять как к объектам так и к бесконечным ландшафтам.

Геомерия у Displacement создаётся не так же, как у Nanite, хоть и называется так же. В связи с этим, геометрия, созданная дисплейсментом, не влияет на угол отражения и блики, поэтому к материалу лучше применить карту нормалей. А так же, лично у меня, жёстко подвисает комп, если перемещать ИС вблизи геометрии с дисплейсментом. Скорее всего, в следующих версиях поправят.

Проблемы симуляции жидкости и почему это дорого?

Задача — сделать 10 секунд симуляции жидкости высокой детализации для крупного плана в 60 кадров в секунду.

Потратив, примерно сутки на эксперименты и сравнение MantaFlow с Flip Fluis, я выбрал последнее, тк MantaFlow ведёт себя очень непредсказуемо, в зависимости от разрешения.

Прикинул, что вода достигнет поверхности бассейна за 50 кадров + нужно 10 секунд самой анимации в 60fps, получается симуляция 650 кадров с разрешением в 150 миллионов вокселей. Такая симуляция на Ryzen 3700x заняла 5 суток.

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

Перенастроил сцену из Cycles в Octane Render, проблема сохранилась, поэтому решил вернуться в Cycles.

Blender, вообще, отлично переваривает большое количество полигонов, проблема именно с геометрией FlipFluids. Разработчики аддона у себя на гитхабе признают проблему и пишут, что она на стороне блендера тк он плохо дружит с HighPoly геометрией сделанной на питоне или что-то типа того.

Я решил попробовать экспортировать геометрию в Alembic, что бы потом её импортировать назад, так с ней уже проблем быть не должно. По-разному попробовал экспортировать, но всегда это заканчивалось вылетом блендера. Один экспорт даже занял больше суток.

Потом на американском форуме я нашел решение, где было сказано, что в геометрии перед экспортом нужно просто поменять местами модификаторы и поставить модификатор Smooth вниз, после чего геометрия FlipFluids быстро экспортировалась в Alembic. Это сработало. Я экспортировал геометрию в Alembic, спрятал из рендера и вьюпорта оригинальную геометрию FlipFluids, но оставил пузырьки и пену и импортировал геометрию Alembic.

Был приятно удивлён, что Alembic геометрия сохранила информацию о скорости и MotionBlur на воде работал корректно и сцена теперь не вылетала. Точнее, уже вылетала не сразу же, а чуть позже.

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

В месте соприкосновения струи с поверхностью воды, жидкость выглядит тёмной. Совсем не «голубая лагуна». Проблема в ограничениях технологии PathTracing. В этом месте происходит огромное количество отражений и преломлений от поверхности воды и пузырьков, а рендер считает максимум 12 переотражений, а дальше рисует черноту. Можно, конечно, поставить не 12, а 128, 1024 и тд, но тогда и результат рендера мы будем ждать месяцы. Поэтому добавил бирюзового самосвечения к пузырькам и в 10 меньше такого же самосвечения самой воде. Косяк ушёл, время рендера не изменилось. Рендерю с начала. Заодно, решил начинать не с 50 кадра, а с 100, где на поверхности воды уже видны колебания. Так же добавил яркость источникам света и немного тумана воде.

Спустя некоторое время тестов, я заметил, что в Blender 3.5, сцена ведёт себя гораздо стабильнее, чем в версии 3.6, решил продолжить работу в ней. Материалы с картой Mix пришлось перенастроить, тк в версии 3,6 она работает иначе, и придётся перерендерить первые кадры, тк теперь некоторые материалы выглядят чуть по-другому.

Ещё через день, посмотрел первые секунды получившейся анимации и заметил, что растения колышутся от ветра не так, как я задумал, на ветках нет текстуры и пропала трава. Проблема в том, что я делал проект на ноутбуке, а симуляцию и рендер на ПК, а на ПК на версии 3,5, стояла старая версия аддонов растительности. Переустановил аддон растительности, перенастроил растительность. Переустановил плагин для травы, перенастроил траву. Поставил анимацию рендериться заново.

Открыл для себя программу Batch Render Creator, благодаря ей, количество вылетов во время рендера сократилось ещё больше.

Самосвечение в этом ракурсе, около тёмной щели, откуда вытекает вода — выглядит не очень. К сожалению, в блендере нет карты Distance, которая есть в 3ds Max и Corona, поэтому придётся ещё раз отрендерить вариант без самосвечения и замиксовать их в AfterEffecs, что бы в районе щели самосвечения не было, а в остальных местах было.

Были ещё и другие проблемы, например с положением камеры, тк я сместил начало анимации с 50 на 100 кадр, тоже пришлось перерендерить часть. И с Geometry Nodes пришлось повозиться, что бы обрезать дно у воды, тк симуляцию я делал не на всю глубину бассейна.

В ответ потенциальным критикам, которые никогда ничего подобного не делали, но считают, что в гудини или PhoenixFD проблем меньше и можно всё сделать быстрее, предлагаю вам сначала сделать симуляцию 150+ млн вокселей и отрендерить её на GPU вместе с анимированной растительностью и дисплейсментом, а потом написать, сколько времени у вас это заняло и с какими нюансами и несовместимостями столкнулись.

Почему я перешёл с 3ds Max на Blender?

Первый компьютер мне купили в 2002 году, мне было 12 лет. Примерно за год, игры перестали мне быть интересны и я, отложив со школьных обедов 60р, купил свой первый диск с 3ds Max 6. В 2003 и до 2006 года у меня не было интернета. Всё, что было — сама программа. И каждый раз, запуская компьютер, в первую очередь я запускал 3ds Max и изучал его «методом научного тыка». Первые 500р. на 3ds Max я заработал в 2006 в 16 лет. Мне их заплатили за визуализацию ночного клуба в моём городе Иваново. К сожалению, ни этот рендер, ни другие, не сохранились, т.к. в 2007м, жёсткий диск компьютера посыпался вместе со всей информацией. с 2007 года, работы сохранились и вот, например, пара работ тех времён.
https://vk.com/album2903316_71222494

Потом я работал в игровой студии, потом у дистрибьютора Autodesk, потом вёл курсы по 3ds Max и делал проекты в нём же. С 13 до 32 лет, моя жизнь плотно была связана с этой программой. Но вот уже год как я делаю все проекты в Blender, а на моём рабочем компьютере, 3ds Max даже не установлен и вот почему:

  1. Blender Cycles X — очень быстрый GPU рендер. Когда-то я написал статью, что нет смысла учиться тонким настройкам V-Ray, потому что ПК становятся мощнее и очень скоро мы перейдём на PathTrace рендеры. Статью я писал в 2013. Corona Render ( PathTrace ) появился и стал популярен в 2015-2016. В 2019 вышли видеокарты с RTX ускорением, что направило вектор развития в сторону GPU PathTrace рендера и сейчас, если вы ещё не перешли на GPU рендер, то стоит это сделать. Если Corona Render, на моём ПК рендерит сцену 1-2 часа до 50-100 сабдивов, а потом её денойзит, то Blender на RTX 3060ti рендерит 1024 сабдива за 2 мин. 30 сек. в таком же интерьере. А до 50-100 сабдивов рендер доходит за считанные секунды. Т.е. на рендер 8 ракурсов интерьера в хорошей детализации, гораздо выше, чем была бы в короне, у меня суммарно уходит 20 минут, вместо 8+ часов.
    V-Ray GPU тоже проигрывает Cycles в том, что out of core в V-Ray не работает, а следовательно, ваша сцена может просто не отрендериться, если в ней интерьер и, например, более двух 8к текстур.
  2. Blender — бесплатное OpenSource решение. Что означает огромную экономию на покупке софта, либо, если вы пират, лишний раз уберегает вас от «геморроя» поиска хорошего рабочего кряка без вирусов, который всё равно может слететь, например, после установки параллельно более свежей версии.
  3. Скорость загрузки. Blender запускается за несколько секунд, в отличие от 3ds Max, который запускается секунд 30-60.
  4. Горячие клавиши в Blender реализованы просто вау как. Перемещение объектов происходит гораздо быстрее и весь процесс работы ускоряется. Так же, для создания планировок я отказался и от AutoCad, потому что в блендере можно горячими клавишами перемещать полигоны и вертексы на точные расстояния.
  5. Библиотека BlenderKit и подобные аддоны. Если вам нужен какой-то готовый 3d объект, вам ненужно лезть на стоки, скачивать его, разархивировать, затем нажимать кнопку «Импорт» и тп. Вы просто выбираете нужный объект внутри интерфейса блендера и просто сразу перетаскиваете его в сцену.
  6. Скульптинг и текстурирование. Для них ненужно отдельно покупать MudBox, Zbrush, Mari или SustancePainter, экспортировать модель в Fbx, затем открывать в этих программах, затем экспортировать обратно и тп. В блендере достаточно просто зайти во вкладку скульптинг или текстурирование и сделать то, что нужно. Если вы не узконаправленный спец по скульптингу или текстурированию, функционала блендера вам будет за глаза.
  7. Настройка света и материалов происходит гораздо быстрее, благодаря п.1. Т.е. больше нет такого, что поставил рендер на ночь, с утра увидел, что какой-то материал не тот, или свет не тот или какой-то плакат в дисплейсменте провалился и тп, и снова ставишь на рендер. Все подобные косяки видны сразу же, тк на черновой рендер уходят доли секунды, даже отходить и кофе себе делать ненужно.

Как видите, все эти пункты сильно экономят время и убирают ненужный «геморрой». Но есть и минусы.

  1. Для интерьерной визуализации, библиотеки под блендер пока не могут сравниться с библиотекой под 3ds Max, которая есть на сайте 3ddd. Однако это не мешает вам скачать с 3ddd то, что вам нужно, в формате FBX и перенастроить материалы.
  2. Displacement Cycles X реализован хуже, чем в Corona или Octane рендерах. Он более ресурсоёмкий. Для рендеров с дисплейсментом в разрешении выше, чем 1600*1200, 8гб видеопамяти может не хватить. Однако, можно:
    а) понизить параметр Subdivision
    б) поставить Octane, который под блендер — бесплатный, правда, в таком случае, придётся вручную перенастроить все материалы под октан
    в) дождаться новых версий блендера, развивается он очень быстро
    г) купить RTX 3090 с 24гб видеопамяти

Для меня, плюсы очень сильно перевесили минусы. А со временем, как мне кажется, и последние два минуса — пропадут.

P.S. Если вы попробовали блендер и вам показалось, что он работает медленнее, чем 3ds Max, убедитесь, что он у вас запускается на дискретной видеокарте, а не на встроенной.

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

Выравниваем тон текстуры что бы избежать тайлинга

Урок по работе с текстурами
Выравниваем тон текстуры, чтобы избежать навязчивых повторений «частотное разложение»

0. Открываем текстуру в Photoshop
1. ctrl+j
2. Фильтр — Размытие — Среднее (Filter — Blur — Average)
3. Двойной щелчок по «Фон» — Ок
4. Фон на верхний слой
5. Непрозрачность у слоя Фон 50% и метод наложения «Линейный свет» (Linear Light)
6. Фильтр — Другое — Цветовой контраст ставим значение (50-100) (Filter — other — High Pass)
7. Объединяем слои Фильтр — Другое — сдвиг (Filter — other — offset) и сдвигаем текстуру на глаз, что бы по центру виднелись швы.
8. Замазываем швы Штампом или удалением с учётом содержимого.

Проект «островка» для торгового центра

Наша студия занимается созданием проектов островков и выставочных стендов от эскизов до 3D  визуализации и чертежей в AutoCAD. Пример нескольких наших работ для франшизы «Солнцетур» ниже:

3d модель врисована в актуальном масштабе в реальное фото.

3d модель врисована в актуальном масштабе в реальное фото.

Разработка дизайн-проекта «островка» для ТЦ от эскизов до 3d визуализации и чертежа в AutoCAD.

Заказать проект островка под ключ — +7(985)468-80-21 или mail@andreykozlov.ru

Стоимость:

Визуализация вашего концепта по вашим эскизам и референсам — 20.000р.

Визуализация вашего концепта по вашим эскизам и референсам + видео облёт — 30.000р.

Экспресс дизайн, визуализация и видео облёт, без вашего эскиза, только по референсам, без правок — 40.000р.