Metaballs for SPH and Other Purposes

HomeForumsGeneral techniquesMetaballs for SPH and Other Purposes

This topic has 3 voices, contains 7 replies, and was last updated by avatar niels 267 days ago.

Viewing 8 posts - 1 through 8 (of 8 total)
Author Posts
Author Posts
August 22, 2011 at 19:00 #627
avatar
Jake Taylor

Anybody done much research on rendering metaballs BESIDES using marching cubes? Found some interesting papers on the subject (namely http://wwwcg.in.tum.de/Research/data/Publications/Vis10EfficientSPHRendering.pdf ) but haven’t played with much myself.

Anybody have any experience with the subject?

August 24, 2011 at 16:34 #748
avatar
Matt Swoboda

Yea, ive tried a bunch of things in this area.. Tried raytracing the metaballs directly (on CPU actually) – which we never used / released as it wasnt quite good enough..
Tried rendering the metaballs to a volume and then converting to SDF then raymarching (on GPU) – see frameranger for that. Works well except the field is sparse so you cant march too efficiently. Also you are still limited to a certain grid resolution.
And then some things with screen space splats which is pretty fake – NVIDIA have some demos with that technique.

August 24, 2011 at 21:33 #787
avatar
Jake Taylor

Yeah, played with NVidia’s curvature flow technique, if that’s what you’re referring to. Still got the same nasty issues as with all splatting techniques though, namely edge artifacts. This paper seems interesting though..

August 24, 2011 at 22:03 #788
avatar
Jake Taylor

upon more inspection, it seems this just provides a nice way to generate a volume, then you must march (as you mentioned) through a sparse volume.

I also know our good friend Mentor has done some work in this area, achieving ~60k balls in around 30fps on a mid-grade laptop GPU using DirectCompute and a view-space grid like the one mentioned here, but instead of trying to generate an SDF texture, he had bucketed the balls into his grid. I don’t remember any more details, though. Looks like something I’ll have to play with :)

August 25, 2011 at 12:59 #1020
avatar
Matt Swoboda

I did a pretty similar thing – bucketing the balls in a view space grid and raytracing, but on CPU. It was just a bit too slow to be usable in production – 20k balls at ~15 fps on a dual core a few years back. Maybe on gpu nowadays.. :)

August 25, 2011 at 13:12 #1025
avatar
niels

What do you guys mean by “bucketing” the balls in the viewspace grid?

August 25, 2011 at 15:19 #1054
avatar
Jake Taylor

It basically just means using a grid that is aligned to the view space instead of a uniform grid in world space (Fig. 3 in the paper I linked in the first post shows a good picture of this). Then, for each cell, store a list (a bucket) which contains all balls whose influence would affect the cell.

  • This reply was modified 267 days ago by avatar Jake Taylor.
August 25, 2011 at 15:40 #1055
avatar
niels

Ah, that explains. Thanks!

Viewing 8 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic.