正在加载视频...
视频加载失败
I finally released VRCFluid: my boundless, high-quality SPH fluid simulation for VRChat worlds! 🌊 Up to 1M particles, simulated on the GPU which works without compute shaders! My demo world: Booth page:
97,338 次观看 • 10 天前 •via X (Twitter)
16 条评论

The water isn't confined to a box region. A sparse hash grid means the fluid can exist (almost) anywhere in the world. Here I'm flying on the VRChat broom through a zero-g field of droplets over the whole world.

VRChat has no compute shaders, so the whole simulation runs in fragment shaders driven by UdonSharp and VRCGraphics.Blit, with no simulation cameras either. There are four performance tiers: 64K, 128K, 512K and 1M particles, and each player picks their own.

The surface is meshed with marching cubes every frame and rendered as a proper transparent liquid in screen space: refraction, absorption and scattering, so it looks like actual water and not a pile of spheres (but that's a togglable option!).

You can play with it in multiplayer: synced fluid guns, emitters, voids that drain it and force fields like vortices. Any player can pick them up. Fluid is only approximately synced tho.

It collides with the world: walls, terrain and overhangs are baked on the GPU in the editor, and players and pickups around you are captured live, so the water flows around you. Static objects are baked into a higher quality collider, while dynamic collision is done via cameras.

There are 9 looks and 11 physics presets, from water to goo, milk, gold and a ball pit, or you can tune the settings to get your own look

It also supports VRC Light Volumes, so the liquid is lit by the same baked lighting as the rest of the world.

Everything can be controlled from an in-world panel in English, Japanese and Chinese, and it works in multiplayer instances. It even runs in plain Unity projects without the VRChat SDK (Only BRP and 2022.3.22f are tested)

If you want to support me and the development, you can get it on Booth or Gumroad: Also here's a setup tutorial for adding it to your own world:

how are you building the sparse hash grid with just fragment shaders and blits? without atomics I'd guess a sort pass every frame

mipmap based radix sort

Expect a video from me, very soon...

no compute shaders and 1m particles on gpu? thats insane, how do u even optimize that without melting people's pcs

know a creative technologist who builds VR rave worlds and would put this fluid in front of a crowd. couldn't get a dm through to you though

a good world for some benchmarking with my 5700X and my future 5700X3D, thanks man

Glad to see it released! Good work 🙏
