
Целта е да се направят 10 секунди много детайлна флуидна симулация за снимка в близък план при 60 кадъра в секунда.
След като прекарах около ден в експериментиране и сравняване на MantaFlow с Flip Fluis, избрах последния, тъй като MantaFlow се държи много непредсказуемо в зависимост от резолюцията.
Прецених, че водата ще достигне повърхността на басейна за 50 кадъра + имате нужда от 10 секунди от самата анимация при 60fps, което води до симулация от 650 кадъра с резолюция 150 милиона воксела. Тази симулация на Ryzen 3700x отне 5 дни.
Освен това се оказа, че блендерът се срива в рендера, ако геометрията във FlipFluids е твърде висока полигонална. Наистина не исках да правя отново симулацията с по-ниска разделителна способност и да чакам отново няколко дни. Прекарах няколко дни в търсене на решение на проблема и дори започнах да мисля да се върна към MantaFlow.
Преконфигурирах сцената от Cycles на Octane Render, проблемът продължаваше, така че реших да се върна към Cycles.
Blender като цяло се справя много добре с голям брой полигони, проблемът е в геометрията на FlipFluids. Разработчиците на добавките признават проблема в своя GitHub и пишат, че той е от страна на Blender, тъй като не работи добре с HighPoly геометрия, направена в Python или нещо подобно.
Реших да опитам да експортирам геометрията в 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, благодарение на нея броят на сривовете по време на рендиране намаля още повече.

Самосветенето от този ъгъл, близо до тъмната пукнатина, откъдето изтича водата, не изглежда много добре. За съжаление, blender няма карта на разстоянието, която е налична в 3ds Max и Corona, така че ще трябва да изобразите версията без самосветене отново и да ги смесите в AfterEffects, така че да няма самосветене в областта на празнината, но има и на други места.
Имаше и други проблеми, например с позицията на камерата, защото изместих началото на анимацията от кадър 50 на кадър 100, а също така трябваше да рендерирам отново част от нея. И трябваше да се занимавам с Geometry Nodes, за да отрежа дъното близо до водата, тъй като не направих симулацията за цялата дълбочина на басейна.
В отговор на потенциални критици, които никога не са правили нещо подобно, но вярват, че в Houdini или PhoenixFD има по-малко проблеми и всичко може да се направи по-бързо, предлагам първо да направите 150+ милиона вокселна симулация и да я рендирате на графичния процесор заедно с анимирана растителност и денивелация, а след това напишете колко време ви е отнело и какви нюанси и несъвместимости сте срещнали.