procedural shape synthesis on subdivision surfaces luiz velho, ken perlin, lexing ying, henning...
Post on 20-Dec-2015
217 views
TRANSCRIPT
Procedural Shape Synthesis on Subdivision Surfaces
Luiz Velho, Ken Perlin,
Lexing Ying, Henning Bierman
SIBGRAPI 2001
Outline
Introduction Background: Procedural Texture
Generation Definition: Multiresolution Surfaces Framework for Multiscale Synthesis Examples Conclusion & Discussion
Introduction
Purpose– Describe a framework to integrate procedural
shape synthesis Advantage
– Allow additions of details at different levels of scale
Background– Procedural texture generation– Multiresolution surfaces
Texture Mapping
Common Approach– Cylindrical 2D texture mapping– Map coordinates of texture field (2D) onto
surface (3D)– (u, v) = F(x, y, z)– Problem:
• Large variations in the compression of the texture depending on the nature of the surface
Texture Mapping
3D Texture Mapping (Solid Texture)– Assign an object with a texture that involves
the evaluation of a 3D texture function at the surface points of that object.
– “carving an object (surface) out of a block of material (texture)”
– Disadvantage:• Texture patterns are only limited to those that can
analytically be constructed.
Procedural Texture Generation
3D Noise Function– Input: 3D position– Output: single scalar value– Noise Function:
• Statistical invariance under rotation
• Statistical invariance under translation
Procedural Texture Generation
Example: Fractal-based terrain generation– Create a 3D terrain model:
1. Start with some coarse approximation• (e.g. a pyramid to simulate a mountain)
2. Subdivide each facet
3. Add spatial perturbation
face 1
Multiresolution Surfaces
Definition:– Extension of subdivision surfaces– Introduce details at each subdivision level– Finer mesh is computed by adding detail offsets
to the subdivided coarser mesh– Synthesis -
• Process of reconstructing a surface from a coarse mesh and the details
– Multi-scale synthesis = addition of geometric details at various levels of subdivision
Framework for Multi-scale Procedural Shape Synthesis
Multi-scaleShape
DefinitionCombiner
AlphaSignal
PostProcesses
Shape info inGlobal: (x, y, z)or Local: (u, v)
A set of displacementcontrol points (details) at each scale
Painted by useror procedurallydefined
Detaileddisplacedsurface
render
Multi-scale Shape Definition
Addition of geometric details at various levels of the multi-scale shape model
Need a procedural definition of the basic shape feature to paste on a surface at some scale level
Define procedural function: FMulti-scale
Shape Definition
Combiner
AlphaSignal
PostProcesses
Multi-scale Shape Definition
F = function to synthesize the difference between the feature at two successive scale levels
P, l F (P, l) D = F (P, l)
P = a point on the surface in global (x,y,z) or intrinsic local (u,v)l = scale level
D = displacement to be added as detail at level l
Multi-scale Shape Definition
D = F (P, l) 2 characteristics can be altered:
– The type of coordinates (global or local)– Magnitude of displacements relatives to the
level• D proportional to l
• D inverse proportional to l
Multi-scale Shape Definition
Models based on:– Global coordinates = volumetric shape
definitions– Local coordinates = surface shape definitions
• “features are grown on the surface”
– D = F(P, l)– D proportional to l = morphogenic-like features– D inverse proportional to l = fractal-like
features
Examples
1. Tentacle: local, morphogenic
2. Berry: local, fractal
3. Mushroom cloud: global, morphogenic
4. Rock: global, fractal
Tentacle Example
Vector tentacle_detail (Point2D seed, int level) {Scalar magnitude = reference_length * level;Scalar p = (PI/3) * level;Vector displacement = (sin(Φ+p), cos(Φ+p), 1);if (is_even(level)) {
displacement *= -1;}return displacement * magnitude;
}
seed in (u,v)
reference_length
Φ
Berry Example
Spread a set of equally spaced seed points on the surface Recursively generate details by defining a volume texture
around each seed point from the previous level Redefine surface normal at each scale level to make
features at each level grow outwards
Mushroom Cloud Example
Features grow from seed points on the surface, based on global coordinates
Displacement directly proportional to scale level
Rock Example
Spatial coordinates of surface are used as input of a noise function generator.
Displacement is inversely proportional to scale level
Applying Multiscale Details to Surface Apply the shape detail procedures to
construct a single feature at a given seed point of the surface
Applying Multiscale Details to the Surface Details added at different levels may
interfere with each other
Level 1 Level 3 Level 1 & 3
Conclusion
Procedural methods to generate multi-scale details described
Framework here provided a powerful paradigm for:– 3D texture generation– Appling of multi-scale details on predefined
shapes or surfaces
Discussion