Presentation is loading. Please wait.

Presentation is loading. Please wait.

Procedural Shape Synthesis on Subdivision Surfaces

Similar presentations


Presentation on theme: "Procedural Shape Synthesis on Subdivision Surfaces"— Presentation transcript:

1 Procedural Shape Synthesis on Subdivision Surfaces
Luiz Velho, Ken Perlin, Lexing Ying, Henning Bierman SIBGRAPI 2001 I would like to share with you this paper on Procedural Shape Synthesis on Subdivision surfaces by Velho, Perlin, Ying and Bierman presented at SIBGRAPI in the past month.

2 Outline Introduction Background: Procedural Texture Generation
Definition: Multiresolution Surfaces Framework for Multiscale Synthesis Examples Conclusion & Discussion Here is a brief outline of my talk. First, I will give an introduction of the paper, and discuss the purpose and the methodolgy they suggested. Then, I will give some background on procedural texture mapping which is what procedural shape synthesis stems from. Then, I will talk about multiresolution surfaces, which would be the basis here for multiscale surface operation. Then, I will show some examples and images of their work. At last, there will be time for conclusion and discussion.

3 Introduction Purpose Advantage Background
Describe a framework to integrate procedural shape synthesis Advantage Allow additions of details at different levels of scale Background Procedural texture generation Multiresolution surfaces The purpose of this paper is to describe a framework to integrate procedural shape synthesis. The advantage of procedural synthesis is that details can automatically be generated to modify any arbitrary base shape, and the key benefit which they claimed in the paper is that their framework allows the additions of details at different levels of scale, and thus, designers can work across many levels of scale. But before we can see any of these benefits, we will first take a look at procedural texture mapping as procedural shape synthesis is closely related to texture generation.

4 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 First, a common approach to texture mapping is 2D texture map. For example, for the cylindrical 2D texture mapping, we simply assign coordinates from the 2D texture space onto our 3D object space. However, one problem is that large variations in the compression of the texture may be produced, because we are transforming from 2D into 3D space.

5 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. Therefore, 3D texture mapping addresses this problem. 3D texture mapping assigns the object with a texture that involves the evaluation of a 3D texture function at the surface points of that object. It’s like carving an object out of a block of material. For example, if we have a block of marble, 3D texture mapping of the marble onto a sphere surface would be like carving a sphere out of that block of marble. However, the main disadvantage of this is that the texture patterns are only limited to those that can analytically be constructed. So it couldn’t be a random image that we extract from a digital camera, or etc.

6 Procedural Texture Generation
3D Noise Function Input: 3D position Output: single scalar value Noise Function: Statistical invariance under rotation Statistical invariance under translation At the heart of procedural texturing is a 3D noise function to produce perturbation and obtain the solid texture. The input to this function is a 3D coordinate and the output would be a scalar noise value. The noise function should be statistically invariant under rotation and statistically invariant under translation to ensure that the general appearance of our object is guaranteed to stay the same.

7 Procedural Texture Generation
Example: Fractal-based terrain generation Create a 3D terrain model: Start with some coarse approximation (e.g. a pyramid to simulate a mountain) Subdivide each facet Add spatial perturbation One example of procedural texture generation is the fractal-based terrain generation. The goal here is to create a 3D terrain model. We first start with some coarse approximation of the landscape. For example, we can use pyramid to simulate a mountain. Then, we subdivide each facet into smaller facets. And we add spatial perturbation using the noise function to simulate the details at this finer level. face 1

8 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 Multiresolution surface is just an extension of subdivision surface, in which we introduce details at each subdivision level. Finer mesh is computed by adding detail offsets to the subdivided coarser mesh. As details can only be specified (or have an effect) in a finite number of levels, this would actually become normal subdivision once we ran out of details. The process of generating the surface from a coarse mesh plus the details is called synthesis. And we can achieve multiscale synthesis here by having differently-scaled details at different levels of subdivision.

9 Framework for Multi-scale Procedural Shape Synthesis
A set of displacement control points (details) at each scale Detailed displaced surface render Multi-scale Shape Definition Combiner Post Processes Shape info in Global: (x, y, z) or Local: (u, v) Here is a look at the computational framework for multiscale procedural shape synthesis that they have proposed. We first start with a shape definition. The shape can be an acquired or stored shape description (like a digitized skull mesh) or a synthesized shape signal. The shape definition takes in either the global (x,y,z) coordinates or (u,v) parametric location on a base surface. Then, the output of the shape definition is a set of displacement control points at each scale or level of subdivision. Then, these shape definitions can be blended together with an alpha signal, which may be interactively painted by a user or defined procedurally. The result of the combiner is a detailed surface definition which can be post processed by a shader to produce a final detailed surface definition to render. Painted by user or procedurally defined Alpha Signal

10 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: F Multi-scale Shape Definition Combiner Alpha Signal Post Processes

11 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

12 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

13 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

14 Examples Tentacle: local, morphogenic Berry: local, fractal
Mushroom cloud: global, morphogenic Rock: global, fractal

15 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 Φ

16 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

17 Mushroom Cloud Example
Features grow from seed points on the surface, based on global coordinates Displacement directly proportional to scale level

18 Rock Example Spatial coordinates of surface are used as input of a noise function generator. Displacement is inversely proportional to scale level

19 Applying Multiscale Details to Surface
Apply the shape detail procedures to construct a single feature at a given seed point of the surface Features at the same level usually do not interfere with each other.

20 Applying Multiscale Details to the Surface
Details added at different levels may interfere with each other Level 1 Level 3 Level 1 & 3

21 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

22 Discussion


Download ppt "Procedural Shape Synthesis on Subdivision Surfaces"

Similar presentations


Ads by Google