outline - was looking for things in houdini, and metaballs was one of the things I didn't think I can explain to students, so want to look into it and figure out why it is so bad to model with - what are implicit surfaces - operations on implicit surfaces - blending - csg - warping - pretty pictures - most of the pictures on my slides are stolen from UCalgary - saw a neat sketch at Siggraph 2000, so I checked there for info 2 ---------------------------------------------------------------------------- intro - 2-D gemoetric shapes defined mathematically in 3-D space - evaluate a point P on function F, if it = 0, it is on the surface < 0, it is inside the surface > 0, it is outside the surface F is the implicit surface function|scalar field|field func|potential func - explicit express surfaces in height field (z = f(x,y)) - can't represent overhang or vertical slopes, or double back - parametric is one way, implicit is another - implicit is easy to determine inside & outside of a surface - also automatic blending of surfaces 3 ---------------------------------------------------------------------------- field/potential function - d is a distance function - h is a blend function - domain r affects the primitive's range of influence - distance larger than r-max = no influence - shape of h affects the primitive radius and blending characteristics - t is a threshold - surface at F(p) - t = 0 4 ---------------------------------------------------------------------------- modeling with implicit surfaces - different names for the same thing - only difference is in potential functions - blending characteristics e.g. continuity of blend in areas of mutal influence 5 ---------------------------------------------------------------------------- - for the most part, distance from the skeleton defines the primitive - plane is really a half-plane (has inside and outside - these are primitives used in the implicit surface modeller at UCalgary - talk about operations on the primitives next, also at UCalgary 6 ---------------------------------------------------------------------------- blending - blending first - basic is adding the potential functions for the primitives - but still use the same threshold - did this in houdini. red sphere is r-max, end of influence - when the area of overlap adds up to t, we get a blend - same thing for multiple primitives 7 ---------------------------------------------------------------------------- generalized blending - for a larger range of blends - example of n = 1 to 10 - as n goes to infinity, it goes to the union of A and B 8 ---------------------------------------------------------------------------- local vs global blending - all the primitives in the system influence one another - houdini implementation only has global blending within each network - makes it hard to model with because it is hard to predict when and how much primitives influence each other - local blending gives finer control - do it as a union of primitive pairs 9 ---------------------------------------------------------------------------- csg - inside is -ve, outside is +ve - examine each edge to see whether they are part of the surface by comparing min or max values at the edge 10 ---------------------------------------------------------------------------- warping - distort shape by changing the space around it - passed in the warped point to the distance function - can do affine transformations such as scaling - Barr deformation operators 11 ---------------------------------------------------------------------------- the blob tree - the blob tree is built from these operators - also a good way to visualize the model structure - all operators are binary except warp, which is unary 12 ---------------------------------------------------------------------------- visualizing the model - not going to say very much - to preview, use polygon mesh - to render, raytraced 13 ---------------------------------------------------------------------------- - stamingo = stork + flamingo - some scene - sea shell I saw at Siggraph 2000, compared to a real model looks really close - so modeling with metaballs in houdini is very limiting, but this stuff from Calgary looks sort of cool