(dh700)
parametric vs implicit surfaces
- checking whether a point is inside/outside: easier for implicit surfaces
- because with our implicit function , we can simply plug in a point and check whether or
- generating points on the surface: easier for parametric surfaces
- with our parametric surface we can simply just sweep the space and get points on the surface using
- checking whether a point is on the surface: easier for implicit surfaces
- like with checking inside/outside, you can simply compute and check if it’s 0.
a parametric ellipsoid
First, we modify the parametric equation of a sphere, scaling it along each dimension based on the scaling factors in the ellipsoid equation.
Subbing this into the given implicit equation gives us:
which is equivalent to the implicit equation for a standard sphere, and hence is true.
We want to prove that lies on the ellipsoid’s surface. It’s easiest to use the implicit form, where we plug in the values
Next, we want the surface normal at P, which is the grad of our evaluated at P
We could probably normalize this too, but it doesn’t specify in the question that we have to, so I won’t.
triangle meshes vs point sets
Compared to a triangle mesh, a point set lacks a vital piece of information in that it no longer identifies the neighbouring vertices of any given vertex. Why is such information necessary or useful in the first place and how do point set surfaces work without it?
This information is important in approximating local quantities like curvature.
Point set surfaces work without this neighbour information by defining an implicit function that takes a point , defines a “neighbourhood” around x, fits a surface to the sample points in the neighbourhood, and then projects onto that local approximation of the surface.
laplacians
doing some computations, we get . hence .
we could compute the gaussian curvature by using the formula where is the angle between , and .
rigging and associated transformations
Rigging adds structure to the surface by defining a skeleton (with bones and joints) and defining associated weights for each point on the surface. The weights define how connected each point on the surface is to each joint or bone. Together, these gives us a body which allows for animations via transformations on the bones or joints.
Assume we have a cylinder with an axis aligned with the -axis. The cylinder extends from −1 to 1 on the -axis and has a base radius of 1. We embed two bones inside the cylinder along the -axis: one extends from −1 to 0, the other from 0 to 1. We define the influence of each bone on each point on the cylinder’s surface as the inverse distance of the point to the bone. Assume we transform the second bone with the transformation .
Determine the concrete weights and give a formula of how the new position would be computed from the weights , , and for a point on the surface (a) in the middle (i.e. with ) and (b) on either end (i.e. with ).
Hint: the weights are proportional to the influence defined above.
The distance to the (midpoint of the) bone is for the first bone and . The inverse is simply the reciprocal of this.
The formula for any point is so for it would be for it would be and for it would be
\mathbf{x'} = \left( \frac{1}{\sqrt{\frac 1 4 + y^2 + z^2}} I + \frac{1}{\sqrt{\frac 9 4 + y^2 + z^2}}T \right)\mathbf{x}$$