Snow Accumulation

Started by
2 comments, last by Zipster 16 years, 3 months ago
I'm a writing a project to present Snow Accumulation in real time, I am wondering whether to do it with an orthographic depth rendering or whether to use a pixel shader, I know little about both, just the google results that I have found. I was wondering which was best from a performance point of view and how to go about implementing it. Thanks in advance!
Advertisement
It depends on how realistic you want it to be.

I always wanted to do a water accumulation effect for my Terrain demo. I would have a particle system which used billboarding but accumulate to a liquid flow when it hit the floor. I suppose you could do a similar effect for snow.

I would probably do it as in a box around the camera, then perform analysis on how much snow should have been accumulated when you reach an area.
I have done this before at interactive framerates in max using metaballs controlled by a particle system. After forming the metaball structure I would relax it which did a pretty good job of simulating the natural diffusion of snow due to wind etc. There's no reason why you couldn't do the same in real time if you coded efficiently. Unless I am misunderstanding the way you want to present this, it seems to me that snow accumulation requires creating new geometry that blobs onto your scene objects naturally...which is not something that you can do in the pixelshader, which doesn't have anything to do with creating new geometry, but rather coloring rasterized pixels.
There's no reason why you couldn't implement this on the GPU with a marching cubes algorithm. Check out "Generating Complex Procedural Terrains Using the GPU" by Ryan Geiss in GPU Gems 3 (the latest edition). It uses a similar technique, at interactive rates. Except doing just snow on the ground would be faster and potentially easy to implement.

Edit: I wanted to add that diffusion and other "erosion"-like effects can be done via blur filters. Plus, it should be quite easy simulate water by throwing in a fluid simulation. You know what, now I want to write a water/snow demo [smile]

[Edited by - Zipster on January 17, 2008 1:28:53 PM]

This topic is closed to new replies.

Advertisement