Архив рубрики: Проекты

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

Задача — сделать 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 вместе с анимированной растительностью и дисплейсментом, а потом написать, сколько времени у вас это заняло и с какими нюансами и несовместимостями столкнулись.

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

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

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

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

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

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

Стоимость:

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

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

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

Видео приглашение на Курс 3ds Max в Таиланде.

Запись на курс здесь tai.andreykozlov.ru

Making of

О ролике:

В этом ролике активно использовался 3d tracking, keying, 3d персонажная анимация, цветокоррекция, 3d моделирование, текстурирование и 3d визуализация.
Часть видео была снята на зелёном экране с маркерами, для статичных кадров — без.
Во время пост обработки и композинга были добавлены следующие эффекты: глубина резкости (на основе zdepth карты), размытие в движении и цветокоррекция.

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

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

Об интенсиве:

27 октября стартует самый полный курс по архитектурной визуализации и, внимание, анимации.
Т.к. рынок 3d визуализации стремительно развивается, умение делать красивые рендеры, серьёзным заказчикам уже не достаточно или не прибыльно исполнителям. Хотите с нуля научиться 3d визуализации в 3ds Max и стать на голову выше 98% визуализаторов, смотрите видео и читайте подробности на сайте.

«Здравствуйте, с вами Андрей Козлов. Если вы смотрите это видео, скорее всего вам интересна 3d визуализация, в частности, архитектурная визуализация.
Возможно, вы новичок в этой сфере или какое-то время крутитесь в ней. Я занимаюсь 3d графикой уже 11 лет и хочу поделиться с вами опытом, который я накопил за годы работы над спецэффектами, играми и архитектурными проектами. Я работал в роли моделлера, визуализатора, аниматора, менеджера и, в результате, сейчас я руководитель собственной студии 3d визуализации и спецэффектов. Я уверен, что эта информация будет вам интересна и несоизмеримо полезна. Например:
1) Как на слабом компьютере делать масштабные проекты?
2) Как, не имея собственной рендер фермы, рендерить в 4 раза дешевле?
3) Где брать такие масштабные проекты и где их беру я?
4) Естественно мы разберём все этапы создания проекта от моделинга до финальной визуализации и пост. обработки.
5) Разберём секреты фотореализма
6) Добавление людей
7) Анимацию
8) рендеринг анимации
И много другого интересного 😉

Всю эту интересную информацию вы сможете получить за 2е недели в Таиланде.
Я приглашаю вас на 2х недельный интенсив, который состоится в дали от текучки, работы и быта. Здесь вы полюбите профессию 3d визуализатора, это станет вашим хобби. Пол дня вы будете заниматься своим хобби, остальные пол дня вы будете валяться на пляже, заниматься дайвингом, купаться и загорать. ни чего не будет отвлекать вас или сбивать, вы сможете полностью погрузиться в изучение чего-то нового и интересного для себя. Мы будем встречаться и обмениваться опытом в дневное время, когда на улице делать практически нечего, в комфортном зале с кондиционером недалеко от гостиницы. Чтобы записаться или узнать подробности перейдите на сайт tai.andreykozlov.ru
С вами был Андрей Козлов, спасибо за внимание и до новых встреч.

Создание рекламного ролика для ТВ

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

В этом ролике, за 15 секунд, 3d графика задействовано на сколько это возможно.  В процессе создания всего лишь 15 секундного ролика, мы столкнулись с проработкой окружения, персонажной анимацией и симуляцией пыли.

Всё началось со сценария, выглядел он примерно так:

«Неприметный, серый городок. Люди с грустными лицами и поникшими головами. Вид сверху. В центре появляется разноцветный дом. Камень, дерево, всевозможные краски. Все горожане замирают на месте. Обращаются в сторону этого домика. Вид сверху. От центра к окраинам поднимается строительная пыль. Город тонет в ее облаке. Кипит работа. Пыль опускается. Город пестрит красками. Различные фактуры. Довольные люди не торопясь прогуливаются по улицам. Вид сверху. Разноцветные дома составляют название компании.
Слоган: Название заказчика. Искусство отделки.
Ролик только на основе 3D анимации.»

Сценарий весьма красочен, но уместить всё это в 15 секунд — нереально, а рекламное время стоит больших денег и предел — всего 15 секунд.

В первую очередь была сделана раскадровка и тайминг.

01-1 02-1 03-1 04-1 05 06 07 08 09-1

Чтобы представлять тайминг, был сделан примерный аниматик

После утверждения мы приступили к созданию улицы. Нужно было 2 варианта: до и после. Было сделано 2 улицы в 2х вариантах, которые тщательно подвергались критике и правкам:

1 7a2146f378cf8f8280e4246f730fe2853af89ec5 a63697632de3aaa6a3e7d9469081c4198f101d15 ab (1) b4204917a97b9dd0ac1add61e1a2e390e9b22b02 c914507e5da3c555163e29ab20a2da4d88423e61 district_new_cam0 district_new_cam1 district_new_cam1_mat district_old_cam1 district_old_cam2 district_old_cam3 e708eb0db024d89d57bb16b7b2b09bffe9a64086 ede03aea8a72a437c2eb7797d2a2eb2f86cbb6d0 IMG_06082014_151505 pn Var_new Новый рисунок (1) Новый рисунок (4) Новый рисунок (5) Новый рисунок (5) Новый рисунок (6) Новый рисунокРабота велась в 3ds Max, Z-Brush, V-Ray и Photoshop.

После множества переделок отделки зданий и улиц, заказчик утвердил эти варианты:

ede03aea8a72a437c2eb7797d2a2eb2f86cbb6d0 e708eb0db024d89d57bb16b7b2b09bffe9a64086Параллельно с разработкой улиц, велась работа над анимацией персонажей. Сами персонажи были взяты высокого качества, это реальные люди, отсканированные на 3D сканере.

Анимация переделывалась несколько раз, пока результат нас не устроил. (С.м. видео).

Визуализация сцены и персонажей делалась раздельно, во избежание шумов в финальном варианте из-за Global illumination. Для статичной сцены GI был просчитан отдельно для всей сразу. Для людей, GI считалось в каждом кадре.

PeopleOne.RGB_color.0000 MagWall_start.RGB_color.0000 Seq[(000001)19-18-29]Последний этап — создание пыли. Было решено делать пыль в Houdini, т.к. это абсолютный лидер по атмосферным эффектам и рендер Mantra с этим справляется лучше всего.

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



Все сошлись на следующем сценарии:

В результате отказались от людей и от пыли, оставили только отделку.

Вот финальный вариант: