who can tell me what the "LevelSet" actually is? i

   13237   6   1
User Avatar
Member
14 posts
Joined: Aug. 2008
Offline
who can tell me what the “LevelSet” actually is? in houdini, and what's it used for? ops:
CSN0309
http://vimeo.com/22993734 [vimeo.com]
User Avatar
Staff
1449 posts
Joined: July 2005
Offline
Informally, a level set is a set of points that satisfies certain criteria (eg, an equation). Such a set of points usually forms a surface. For example, a set of points in 3D space that satisfies x^2 + y^2 + z^2 = 1 constitutes a sphere with radius of 1.

I think, in Houdini, it is used in modeling (IsoSurface SOP), character animation (muscles and Metaball SOP), can be used in volume rendering, and perhaps in gas and fluid dynamics.
User Avatar
Member
14 posts
Joined: Aug. 2008
Offline
Thanks a lot….
CSN0309
http://vimeo.com/22993734 [vimeo.com]
User Avatar
Member
861 posts
Joined: Oct. 2008
Offline
I don't know the Houdini specifics but the term is quite general. Imagine several objects in a room that emit heat. You could sample points in that room and assign each of them a temperature value. You could then take all the points that equal, say 23 degrees celsius. That would be a level set. If you were to make a surface with those points you'd have an isosurface.
--
Jobless
User Avatar
Member
12474 posts
Joined: July 2005
Offline
More simply put, it's a 3D grid of sample points (like a voxel grid) which store not varying density values (like for a cloud), but a distance value to the nearest surface. Like with voxel densities, each cell stores a simple scalar value. This is a common industry thing, by the way.

In a level-set, positive values means that the sample point is outside the surface, negative mean the sample point is inside. (see: volumesample() expression/VEX operation). FYI, this sign can change implementation-to-implementation. If you take the gradient at a point in a level-set gives you a vector to the nearest surface. (see: volumegradient() expression/VEX operation)

So you can imagine many uses: if you have a velocity, you can know whether you'd intersect the surface on the next time-step. It provides a very fast lookup for whether a point is inside or outside an object. You can generate more accurate surfaces from a level-set, more accurate than a iso-contour. It's basically a way representing a solid object in a way that's much faster to query and manipulate then arbitrary topology polygons (or another other regular geometry type, eg. NURBS).
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
User Avatar
Member
47 posts
Joined: July 2005
Offline
Wow Jason that was very well stated,
and not a bit of math involved. Well done.
One of the better “layman” explanations I have heard.
User Avatar
Member
14 posts
Joined: Aug. 2008
Offline
Thank you guys!!!
CSN0309
http://vimeo.com/22993734 [vimeo.com]
  • Quick Links