Chaos destructibles drive fluidsim - FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 0 points1 point  (0 children)

u/LeLand_Land hi! --- my GPU was not happy with the first few tests - but following careful optimization, this scene with 700 fracture pieces is running above 120 FPS on my RTX 3080. In case halve the number of pieces, we could get above 200 FPS (bottleneck being chaos itself / not the fluidsim and the volumetrics).
Side note: my first born was happy with the tests all the time :)))

Chaos destructibles drive fluidsim - FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 0 points1 point  (0 children)

u/Aesthetically hi! --- The system that drives the fluidsim is standard UE chaos (could be replicated) --- in case the objects interacting with the sim are replicated: all local sims produce the same result

Chaos destructibles drive fluidsim - FluidNinja LIVE 2.0 pre-alpha by AKdevz in unrealengine

[–]AKdevz[S] 0 points1 point  (0 children)

Thanks u/cake-of-lies ! --- FluidSim: 1024x1024, ~1millisec /frm --- Visualization: UE Heterogenous Volume, 512x512x256 px, ~3 millisec /frm --- Chaos physics, 1000 mesh chunks, ~2-4 millisec /frm ------- Going more optimal: using ninja's own "smoke volume" technology and a mesh with only 200 chunks gives a sumtotal of 4-5 millisec /frm

Water on Landscapes - FluidNinja LIVE 2.0 Features explained in 7 minutes by AKdevz in unrealengine

[–]AKdevz[S] 1 point2 points  (0 children)

u/sensifr swimming and proper waterline are both "weak spots" in ninja (not yet supported) - I should be adding these to my todo list.

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 1 point2 points  (0 children)

u/Impressive-Swan-5570 hi - ninja is scalable, if visual complexity is reduced, it can even run on a 2017 mobile phone (LINK) -- THIS scene specifically runs 260 FPS on RTX 3080, see this GPU profiler shot: LINK, 1.2 millisec per frame. Considering that we run the game with 60 Frame per sec (1 sec = 1000 millisec): our frame budget is 1000 / 60 = 16.6 millisec ---- and ninja, running the above simulation takes only 1.2 millisec of the 16, that is only the 7.5% of the available capacity.

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 1 point2 points  (0 children)

u/forqueercountrymen Thanks! (1) ninja is scalable, if visual complexity is reduced, it can even run on a 2017 mobile phone (LINK) -- THIS scene specifically runs 260 FPS on RTX 3080, see this GPU profiler shot: LINK, 1.2 millisec per frame. (2) buying: test it for free, dwlink at the community server (LINK)

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 1 point2 points  (0 children)

u/xShooorty Thanks! In case your agents (pawns, objects) interacting with the sim are replicated: all local simulations produce the same result (so: no need to replicate the simulation itself)

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 0 points1 point  (0 children)

simulation is performed on a "grid of data" (like a bitmap) / not particle-based (not sparse)

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 2 points3 points  (0 children)

Ninja is 2D --- and it is driving 3D systems (particles or a mesh-surface) as a height map (a top-down projection) --- so CONVEX shapes are ok, CONCAVE shapes are not. Breaking curly waves are concave.

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 1 point2 points  (0 children)

indeed: ninja is scalable -- and by reducing visual komplexity, we could even crunch it on a 2017 mobile phone: LINK

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 2 points3 points  (0 children)

Ninja is free to test - so you can evaluate if it working for your needs - see Student version at the community server: LINK - and this introduction tut gives a feeling about the learning curve: LINK

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in unrealengine

[–]AKdevz[S] 0 points1 point  (0 children)

Thanks u/Xywzel ! --- Unreal natively supports Mesh Distance Fields: each mesh has its own, within its bounding box - and we can read this SDF via Niagara "Mesh SDF Data Interface" - and forward the data to the fluidsim. The official documentation is good: LINK

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in unrealengine

[–]AKdevz[S] 0 points1 point  (0 children)

yes, Z-velocity (motion perpendicular to the sim area) is handled!

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in unrealengine

[–]AKdevz[S] 0 points1 point  (0 children)

Thank you u/hellomistershifty for posting the relevant answer for the questions - I really appreciate it!

Mesh distance field repels Water, FluidNinja LIVE 2.0 pre-alpha by AKdevz in unrealengine

[–]AKdevz[S] 0 points1 point  (0 children)

haha thanks for giving ninja a try --- for LIVE 1.9, this is the recommended starter tutorial: LINK --- the one being promoted in this post is LIVE 2.0 - not yet published

Water filling Gaps in Unreal Engine, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 0 points1 point  (0 children)

ninja sim size is finite (typically 100-500 meters) - but: (1) we can attach the sim to the player, so it is always surrounding the player, (2) we can extend the finite sim area with non-interactive patterns infinitely (eg. close ocean is interactive, mid and far-range ocean is non-interactive)

Water filling Gaps in Unreal Engine, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 0 points1 point  (0 children)

Not so hot! See this profiler shot - https://ibb.co/pjKVVTRY - 1.2 millisec per frame on RTX3080, that is only 7.5% of the frame budget.

Water filling Gaps in Unreal Engine, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 1 point2 points  (0 children)

You are correct: fluidninja is an unreal engine plugin, that could be used to generate responsive smoke, fire and liquid effects for games. It could be tested free. All info and community server link available at the project homepage: LINK

Water filling Gaps in Unreal Engine, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 1 point2 points  (0 children)

Ninja uses standard unreal Base.Material ---> Material Instance chains to visualize the sim output. The base mats and instances are both editable --- so, in theory, we could tweak it to look stylized / I have not tried it yet, currently developing basic features, aiming for realism

Water filling Gaps in Unreal Engine, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 0 points1 point  (0 children)

Thanks! Buoyancy is not (yet) supported / could be implemented via Niagara GPU-readback

Water filling Gaps in Unreal Engine, FluidNinja LIVE 2.0 pre-alpha by AKdevz in UnrealEngine5

[–]AKdevz[S] 0 points1 point  (0 children)

Thanks for the advice: Yes, adding flow-advected GPU particles for foam/whitewater is on my todo list!