One question-U3D

5cac3bdf26f2d
Sorry, my English is not good.

I want to ask how to achieve this effect.

I want to know the production ideas.
Thank you everyone

3 Likes

Simulate in houdini. Fill density field with points. Copy heatfield over to point color attribute. copy bricks to points. Add RBD bricks the same way. Export as VAT. Done.

7 Likes

In real-time that’s gonna be incredibly challenging, though I’d love to see somebody pull it off. There’s at least three hard things going on there:

  1. the complex, evolving shape of the smoke plume itself
  2. the voxel / brick-ization
  3. the loose, physics-simulated pieces piling up at the base

The normal way of doing 1 would be running an offline smoke simulation and then baking it into vertex animation textures. The idea of that is that you have a base mesh with a “pool” of triangles and then use the vertex shader to read positions / normals out of the baked texture to recreate your mesh.

Going from there to 2 would be an even worse problem, but I suspect you could simplify things by using the smoke voxel grid directly; in other words, instead of baking out triangle data and applying it to a mesh, you could bake out a list of which grid-cell coordinates are “occupied” by a brick on/near the surface of the smoke, then do an instanced draw of a bunch of of 1x1 bricks and place each on one of the occupied cells.

3 is fortunately a separate issue from either of those, but it seems pretty tricky as well—you could use mesh particles, but those won’t collide with each other so you won’t get the nice bouncing in that gif or the piling up at the base. You might be able to solve the latter using an invisible, cone-shaped collider that rises up over the course of the animation, and having the particles stop when they hit it, but it’ll probably be hard to get looking good.

Long story short, it’s a really tough problem, but it’d be really cool to see it working. :slight_smile:

Thank you very much for your answers.
What if you want to implement it in Unity?

Cool idea, I try to solve these problems one by one

In what way? You want to do the whole simulation in Unity?
VATs work well in unity.

1 Like

That’s a really cool Fx to try and recreate. looking forward to see your progress on it. :slight_smile:
Here’s something that John Farmfield did that it might be useful , it has the source files.

2 Likes

Yes, I want to simulate in Unity, but no idea

:star_struck:

Thank you very much

Then you grab a team of experienced coders and dedicate yourself to the task for thext 6 - 20 months. It’s not something that is currently doable in real-time but if you have the team and budget for it, I don’t see why it’d be impossible.

fluid dynamics isn’t abnormaly complex thing, this is not an impossible task for solo entusiast, all you need is to be good with maths, compute shaders and a pile of white papers like:
Stable Fluids stam.pdf (1.3 MB)
Grid Based and Particle Based Fluids fluid-5.pdf (1.0 MB)
A Generative Network for Parameterized Fluid Simulations Deep Fluids

yes, high-res realtime simulation in 3d is close to impossible technically, but very low-res as we discuss is doable

2 Likes

With mesh stamping that interacts with rbds? I’d love to be proven wrong on this :slight_smile:

1 Like

I believe new unity ecs physics engine will be good enough here for 150-300 boxes

https://github.com/Unity-Technologies/EntityComponentSystemSamples/blob/master/UnityPhysicsExamples/Documentation/images/planet_gravity.png?raw=true