PDA

View Full Version : Dynamic bed of gravel



Chrusion
01-18-2008, 11:00 AM
Scenario: A client wants you to show the interior action of 80 steel paddles, each about 12" wide, attached in 8 slightly spiraled rows around the outside of an 8' dia drum that turns inside of an 11' dia stationary drum filled with a layer of gravel. The 15' long drums are oriented horizontally at a slight angle so the bed of gravel is only about 6-10 inches deep. The paddles are angled so as to push the gravel down to one end as they stir up and progressively mix the gravel with a sticky, black, gooey substance.

HOW would YOU achieve a convincing simulation of this using LW?

Ztreem
01-18-2008, 12:56 PM
I would use HardFX for the gravel and the paddles and particles and hypervoxles for the goo. You could also use particles and hypervoxels for the gravel as well, will calculate faster but not as accurate.

Chrusion
01-18-2008, 01:47 PM
So you would model a low poly gravel particle, say no more than 8 polys and about 1/3" in dia. and use HardFX to do what with it? Instance it a million times (literally) to form the bed of gravel using Self Collision to allow them to pile up on top of each other to form the thickness of the bed with the outer drum as the container collision object?

Would you then simply do a dynamics calc using the 80 paddle object as a collision to push and stir up those one million gravel objects?

How long do you think each frame would take to calculate all million objects and millions of collisions? A couple hours? Could LW even handle this?

If so, then 2 hours times 1000 frames = 2000 hrs = 83 days for the dynamics to calc and what, probably 5 - 10 gigs for the resulting motion dump file so it could be rendered over SN?

Are you SURE this is the best way to do this?

Ztreem
01-18-2008, 02:27 PM
It's not the best way but a way to get each gravel to interact with each other. You could surely get a decent result with particles, but the interaction with particles isn't as good as the hardFX one. But as you said it will surely take too long to calculate so it's not worth it. Go the particle route instead.

Chrusion
01-18-2008, 09:59 PM
But still... millions of particles would be needed, all self-interacting collision, in order for them to form a thickness. I've tried doing an R&D "fill a glass with marbles" type of thing using just a handful of particles. It did not turn out well. The marbles just kept bouncing around and jiggling.

I can't imagine it being any better having up to at least a million particles doing the same.

Hmmm... even if I created a curved 500K poly mesh representing the surface of the gravel bed and used it as an emitter and collision object at the same time to create a single particle thick field of gravel, the calculation time would be just as astronomical having 80 proxy boxes acting as paddle colliders plowing thru the particles.

Chrusion
01-18-2008, 09:59 PM
But still... millions of particles would be needed, all self-interacting collision, in order for them to form a thickness. I've tried doing an R&D "fill a glass with marbles" type of thing using just a handful of particles. It did not turn out well. The marbles just kept bouncing around and jiggling.

I can't imagine it being any better having up to at least a million particles doing the same.

Hmmm... even if I created a curved 500K poly mesh representing the surface of the gravel bed and used it as an emitter and collision object at the same time to create a single particle thick field of gravel, the calculation time would be just as astronomical having 80 proxy boxes acting as paddle colliders plowing thru the particles.

Chrusion
01-18-2008, 10:07 PM
ISP went down.... reloaded page... made multiple posts instead.

Mr Rid
01-19-2008, 01:09 AM
No can do in LW. You could only cheat with particles that do not self collide.

I found that a short anim of 20,000 self colliding particles took hours to calculate. 30,000 just sat calculating frame 1 for 20 minutes before I killed it.

RealFlow can handle millions, but you are probably looking at days to render a sim and 100s of gigs of generated files. Would need a serious 64 bit station with lots-o-ram, but it could be done.

Ztreem
01-19-2008, 02:26 AM
As Mr.Rid said I don't think LW is up to the task if you need a accurate simulation, but you can cheat and make it look real even if it's not. I would do it with particles and it won't it be easy.

Carm3D
01-19-2008, 10:42 AM
Here's what I would do if I was in your predicament...

Trying to sim millions of pebbles is out. I would model a lumpy mesh to be an underlying ground shape. I'd use ClothFX in a way similar to those sims I've seen where they used ClothFX to make footprints in mud. But not quite so firm. It would definently take some trial and error to get a good look there.

Then I'd save out the ClothFX calc into an .MDD

Then I'd sprinkle the ClothFX mesh with pebbles.. Maybe 300 or so? And use HardFX on them, with the underlying ground mesh as a collision.

I don't know if / how well it would work, but that's what I would try. Of course the ClothFX mesh would be textured to look like it's covered with those same pebbles.

EDIT: Oh I didn't read your post carefully enough.. Didn't notice the goo.. You're on your own there... Hypervoxels? :)

Elmar Moelzer
01-19-2008, 12:46 PM
I think that Carm3ds idea is actually very good, and pretty much what I would have done (if I understand your project correctly). For the goo, Surface HVs might actually be a good idea. In order to get the gravel slowly covered with goo, you might try to use some enveloped surface mixing or something like that. Depending on how close you will see this and how closely the audience will observe this, it should work with faking it that way.
Otherwise, I have to aggree that this would be very difficult to achieve, but probably in any software.
CU
Elmar

Chrusion
01-19-2008, 03:14 PM
Well, I started this thread hoping to see if others would approach the effect differently or more efficiently than I did 4 years ago. Doesn't seem to be the case, but was hoping LW had come far enough since version 7.x to remake the gravel sim portion of the anim. Thanks for all your suggestions.

Here's what I did back then, which is basically the same as what I'm doing now. The look is far from realistic, but the client knew the limitations back then and has accepted the fact that LW hasn't changed much in this area.

Originally I made the bed of gravel out of a highly subdivided mesh and simply gave it texture and bump maps of gravel. Today, that mesh was turned into a sub-D with a render level of 5 to create around 1 M polys. The same color map was retained, but then I used a high-contrast b/w version as a d-map, which made for a much nicer, geometrically bumpy field, then I added a second d-map layer of marble set to 0 turbulence and freq. of 1 to make soft linear ripples sized to fit between the gaps between paddles to create the ridges of gravel btwn them and wide 'valleys' where the paddles traverse thru the gravel (mesh). I added crump bump texture to create the chiseled nature of the gravel.

Originally, I used Napalm to create HV particles coming off the forward face of each paddle to simulate gravel being kicked up and plowed thru. Not very convincing, but better than simple intersecting geometry. Today, I do the same, but with PFX and a gradient texture to control emission only for the paddles entering the gravel mesh.

In both anims, past and present, gradient alpha textures are used to transition the color of BOTH the gravel mesh and HV particles from uncoated (dull gray) to coated (the slightly shiny jet black 'goo' known as asphalt).

# of particles generated by the paddle emitters is somewhere around 90K - 100K in total.

Don't have a rendered pix here at home to show... will get one from the "farm" at school and post in the next day or so.

So, it sounds like you came up with the same method as I did and that there isn't much more LW can do. Is there ANY application that can do what I assume would be "computational fluid dynamics" simulations like this using millions of self-interacting/colliding particles?
.

Ztreem
01-20-2008, 05:18 AM
I think XSI can do it with the Ageia PhysX engine, but I'm just guessing.

Chrusion
01-21-2008, 07:12 AM
View shows about 1/3 the way down the length of the approx. 15" high space btwn inner and outer drums (inner above, outer below containing gravel). You can see hints of the marble-created ridges btwn paddles and HV gravel coming off the paddles. The foreground grayish tone of the dry gravel transitions to black a few ridges in front of the camera as asphalt cement is added to the mix and stirred by the paddles rotated by the inner drum.

duke
01-23-2008, 04:29 AM
That's pretty cool. The only thing i'd do is use a gradient on the subD level of the gravel so you get alot more geometry closer to the camera, and lose some the further it gets from it.

Chrusion
01-23-2008, 10:42 AM
Good point. I thought about doing that, but deadlines and rendering loom large.

I wonder, is it possible to dynamically displace the mesh based on the position of each paddle to augment the effect of it pushing up a pile of gravel? How could this be done? Something like "parenting" an image map to each paddle that adds to the existing displacements of the mesh. Hmmm....

duke
01-24-2008, 07:53 PM
Yeah, put nulls on paddles, make distance to object gradients.