Date post: | 30-Dec-2015 |
Category: |
Documents |
Upload: | morgan-parrish |
View: | 214 times |
Download: | 0 times |
Prologue - Archimedes
A Roman soldier came up to him unexpectedly and commanded him to follow; which Archimedes declined to do before he had worked out his problem at hand. The soldier, enraged, drew his sword and ran him through.
-Plutarch (version 1)
Prologue - Sophie Germain Paris, 1776-1831 Self-educated to age 18 Monsieur Le Blanc attends
Ecole Polytechnique Lagrange, Legendre, Gauss Elasticity and Fermat’s
Last Theorem
Alyn RockwoodMitsubishi Electric Research Labs
Le savant n’ étudie pas la nature parce que cela est utile; il l’étudie parce qu’il y prend plaisir et il y prend plaisir parce qu’elle belle. Si la nature n’ était pas belle, elle ne vaudrait pas la peine d’être connue.
-Poincare.
Implicit Fields
What is an implicit Field?
Generalization of a Distance Field
Shape Field in Gray Height field
A field that “specifies a minimum distance to a shape.” [Frisken, Perry, Rockwood, Jones, Siggraph2000]
Discrete Sampling -
The Data Size Problem - volume data The Solution - sample and interpolate Discrete Structure - octree, for example Adaptively Sampled Distance Fields (ADFs)
Store distance (implicit) values at vertices of an octree
Rendering
Surface rendering– ray casting with analytic– surface intersection
Volume rendering– back-to-front sampled– ray casting
What is an implicit Field?
Formally: An implicit field is a displayable, scalar field d: RnR where the zero set d-1(0) is non-empty.
Object oriented definition: structure + procedure Includes distance fields, but no “minimum” calculation Includes implicits, interpolated, procedural, others Implicitizes; thus the term implicit Examples follow
Example - Weierstrass Egg Carton
d(x) = z - k kcos(kx) cos(ky), k=1,…, Continuous, but
not differentiable! Rendering by
cloud-of-points,
z-buffering, depth
based intensity
Parameter space – unit cube Gamut space – deformed cube
w- axis
green
. (u,v,w) . d(x) = ||(u,v,w)||
blue v-axis
red
u-axis
implicit field at x is metric of its parameter (u,v,w).
Example - Color Gamut
Example - Color Gamut
(R,G,B) color gamut and interior
• p(u,v,w) = (1-w) [(1-v) v]M[(1-u) u]T + v [(1-v) v]N[(1-u) u]T • q(u,v,w) = 2 max [ u-1/2, v-1/2, w-1/2 ] – 1 • d(x) = q(p-1(x))
The min, max or negate operator on field
performs union, intersection or complement; thus
d(x) = min(min(f(x),g(x)), h(x))
Example - Blended Booleans
Example - Blended Booleans
Water
Molecule
Blending with d(x) = 1 – max(1 - f(x)/R, 0 )2 – max(1 - g(x)/R, 0 )2
– max(1 - h(x)/R, 0 )2,
Texturing
Finite Support dnew(x) = dold(x) + T(x)
cos(a ||x||) cos(A||x||), if ||x|| < /(2a) T(x) =
0, otherwise,
Ball peen hammer Ripples
Regularization
Optimizing the discrete implicit structure
Constrained zero set and boundary
Random Field - 2D case Minimal Area - Soap Film
010
20
5
10
15
20
Regularization
Smoothing the Field - better computation,
better parametrization, infinite reusability
Untortured Path Now Possible Path
ParametrizationCorrespond Plane to Surface
Stenciling Bitmapping, Embossing etc.
View Plane to Surface Petal on Weave
Putting it Together
Texturing. Skeleton and Boolean{
float TempT = 0.15*sin(x/0.1)*sin(y/0.1)*sin(z/0.1) +0.3*sin(x/0.05)*sin(y/0.05)*sin(z/0.05);
ITag = 1; // Set color gold
F = pow(x,2)+2.0*pow(y,2)+2.0*pow(z,2)-1.0; // Ellipsoid
float Fi = F-TempT; // Add texture
float Fo = F+TempT; // Subtract Texture
F = fabs(Fo)+fabs(Fi); //Make skeleton
float TempF = pow(x,2)+2.0*pow(y,2)+2.0*pow(z,2)-0.8; // Offset ellipsoid
if (F > TempF) //Create union
{
F = TempF;
ITag = 0; // Set color eggshell
} }
Concise Code for Fabergé Egg
Putting it Together
Skeleton Booleans, Parameterization, Relief mapping, Bitmapping, Regularization
Filigreed Brooches: Bas-relief and Bitmap
Conclusion
FutureAntialiasing
Hardware acceleration
Global Illumination
Web graphics
Extended operations (articulation)
New tools, new context for mathematical
design of shape