Presentation is loading. Please wait.

Presentation is loading. Please wait.

Displaced Subdivision Surfaces

Similar presentations


Presentation on theme: "Displaced Subdivision Surfaces"— Presentation transcript:

1 Displaced Subdivision Surfaces
2000/07/26 Displaced Subdivision Surfaces Aaron Lee Princeton University Henry Moreton Nvidia Hugues Hoppe Microsoft Research Today we are going to talk about Displaced Subdivision Surfaces. It is a new surface representation which combines displacement mapping and subdivision surface. This is a joint work between me, Henry Moreton at NVIDIA and Hugues Hoppe at Microsoft Research. SIGGRAPH 2000

2 Displaced subdivision surfaces
2000/07/26 Triangle Meshes Interactive animation Adaptive rendering Compact storage Transmission In recent years, complex triangle meshes become very popular and they pose challenges to animation, rendering, storage and transmission E.g. on our right hand side, we have a dinosaur scanned by Cyberware scanner. It contains low level details as well as high level details. But the size is very large because it contains more than 300 thousand triangles. Currently we have two approaches which provide scalable algorithms …. Dataset provided by Cyberware SIGGRAPH 2000

3 Displaced subdivision surfaces
2000/07/26 Scalable Algorithms Multiresolution now well established mesh simplification The two approaches are mesh simplification and subdivision surfaces. Mesh simplification can be thought of as a top down approach which goes from a complex mesh to a simple mesh by throwing about information every step. Common operation includes edge collapse or vertex clustering. On the other hand, subdivision algorithms goes from a simple mesh to a complex mesh by splitting one triangle into 4 new triangles and introduce edge vertices. This we call a splitting step. Usually it will be followed by an averaging step which smooth out the vertex positions so that the limit surface is smooth. subdivision surfaces SIGGRAPH 2000

4 Displaced subdivision surfaces
2000/07/26 Subdivision Surfaces Smooth (C1) with arbitrary topology No stitching of patches Easy Implementation Simple subdivision rules Level-of-detail rendering Uniform or adaptive subdivision Subdivision surfaces have become very popular in recent years because they have several nice features. First of all it can represent smooth surfaces with arbitrary topology – thus avoid the stitching problems in NURBS. Secondly most of the algorithms involved are very simple and easy to implement. Thirdly by subdividing the mesh adaptively we can obtain level of details rendering. But notice that we do not add any extra information to the mesh if we are only performing pure splitting and averaging. SIGGRAPH 2000

5 Displaced subdivision surfaces
2000/07/26 Displacement Mapping Scalar/Vector displacement Cook 84 RenderMan Mesh approximation Krishnamurthy-Levoy 96, … Hardware implementation Gumhold-Hüttner 99, … To represent a complex mesh with geometric details, we need more than just a smooth surface. We need a function which can perturb the geometric coordinates. This function can either be scalar (which means it has a preferred direction) or a vector displacement which is more general, but the trade off is to spend 3 times the storage of a scalar displacement. The idea of displacing the vertex coordinates was first introduced by Cook in his 84 Shade Tree paper. Since then it has been widely used and is also incorporated into Pixar’s Renderman package. E.g. Krishnamurthy and Levoy approximated an arbitrary mesh with B-Spline patches plus vector displacement. Gumhold-Huttner has proposed a hardware implementation scheme to incorporate displacement mapping into existing rendering pipeline. In the next section we are going to introduce our approach which combines the simplicity and power of subdivision surfaces with scalar displacement mapping. SIGGRAPH 2000

6 Displaced subdivision surfaces
2000/07/26 Our Approach DSS = Smooth Domain  Scalar Disp Field A displaced subdivision surface is essentially a smooth domain plus a scalar displacement field. In our case we are going use subdivision surface as our domain surface. So the goal is to convert an arbitrary mesh with irregular connectivity to our DSS representation To answer this question we need to come up with two solutions: How to define the control mesh (which leads to our smooth domain surface after a few steps of subdivisions) such that it’s an offset surface And how can we compute the scalar displacement field such that perturbing the vertices can approximate the original mesh geometry. Before we dive into our algorithms, let’s take a brief look at our DSS representation. Displaced Subdivision surface Control mesh Domain Surface SIGGRAPH 2000

7 Representation Overview
Displaced subdivision surfaces 2000/07/26 Representation Overview Our DSS representation consists of a control mesh which is going to be subdivided a few times to produce the subdivision surface. At the same time, we will also use the same sampling pattern to sample our scalar displacement field so that we will have a unified representation for our parameterization as well as our scalar field. Piecewise-regular mesh of scalar displacement sampling pattern Control mesh SIGGRAPH 2000

8 Displaced subdivision surfaces
2000/07/26 Advantages of DSS Intrinsic parameterization Governed by a subdivision surface No storage necessary Significant computation efficiency Capture detail as scalar displacement Unified representation Same sampling pattern and subdivision rules for geometry and scalar displacement field The advantages of DSS are two fold. Since the DSS is a subdivision surface, the parameterization is intrinsic and no need to store the connectivity except the control mesh. The details, which is the difference between the original model and the smooth domain subdivision surface can be captured by scalar displacement along the well defined normal vectors. Thus saving us from storing a general vector displacement. Secondly, not only does the mesh and displacement has same sampling pattern. They also inherit the same subdivision rule which allows us to treat the scalar displacement field as a subdivision surface. Thus we can perform magnification and minification easily if a mipmap hierarchy is not given. SIGGRAPH 2000

9 Displaced subdivision surfaces
2000/07/26 Analytic Properties C1 continuous everywhere except at extraordinary vertices Surface normals are easy to evaluate The idea is to derive the partial derivative of our displaced subdivision surface. But since our Loop domain surface has well defined normal and it’s partial are also well defined. All the necessary partial derivatives can be computed using simple masks SIGGRAPH 2000

10 Evaluation of derivatives
Displaced subdivision surfaces 2000/07/26 Evaluation of derivatives In the next section we are going to talk about how to convert an arbitrary mesh into our DSS representation SIGGRAPH 2000

11 Displaced subdivision surfaces
2000/07/26 Conversion Algorithm Control mesh creation Control mesh optimization Scalar displacement computation Attribute resampling Our algorithm consists of 4 steps: The first step is to construct the control mesh and we do this through mesh simplification. In this project we use Loop subdivision and so the domain surface will shrink from the control mesh which increase the magnitude of our scalar displacement map. In order to compensate this shrinking effect, we run a global optimization to perturb the vertices. In the third step we do a ray casting by shooting rays along the subdivision normals intersecting the original mesh and compute the scalar displacement field. Based on the ray intersection test, we can do the resampling of geometric and texture coordinates and color information. SIGGRAPH 2000

12 Displaced subdivision surfaces
2000/07/26 Control Mesh Creation Mesh Simplification Normal Cone Constraint More details on basic strategy The main objective is that the resulting domain surface should be able to express the original mesh using a scale displacement map. Our approach is to ensure that the space of normals on the domain surface remains locally similar to the corresponding space of normals on the original mesh. Original Mesh Initial Control Mesh [Garland 97] Surface simplification using quadric error metrics SIGGRAPH 2000

13 Normal Cone Constraint
Displaced subdivision surfaces 2000/07/26 Normal Cone Constraint Goal Original mesh can still be described as an offset to the domain surface Heuristic For each edge collapse Compare normals of the subdivision surface to the normals of the original mesh over the neighborhood of edge collapse How do we find the neighborhood We use the parameterization technique from MAPS allowable normals on Gauss sphere SIGGRAPH 2000

14 Tracking Correspondences
Displaced subdivision surfaces 2000/07/26 Tracking Correspondences Control Mesh Creation mesh simplification The idea is pretty simple, during each simplification step we map the vertices from the fine level to the coarse level. As we see here we are simplifying the 3-hole torus from 11k faces down to 120 faces and we preserve the mapping information. 11776 faces 120 faces [Lee 98] Multiresolution Adaptive Parameterization of Surfaces SIGGRAPH 2000

15 Displaced subdivision surfaces
2000/07/26 Control Mesh Creation Mesh Simplification Normal Cone Constraint For the mesh simplification we use Garland’s error quadric approach coupled with our normal cone constraint which we are going to explain in the next few slides. The idea is to arrive at a control mesh such that after subdividing a few times, the rays shooting along the subdivision normals would be sufficient enough to resample the original mesh. Original Mesh Initial Control Mesh SIGGRAPH 2000

16 Control Mesh Optimization
Displaced subdivision surfaces 2000/07/26 Control Mesh Optimization Global Optimization Once we arrive at the initial control, we will perform a global optimization: it’s like blowing the mesh a little bit bigger so that after subdividing a few times it will be as close to the original mesh as possible. Initial Control Mesh Optimized Control Mesh [Hoppe 94] Piecewise smooth surface reconstruction SIGGRAPH 2000

17 Scalar Displacement Computation
Displaced subdivision surfaces 2000/07/26 Scalar Displacement Computation Scalar Displacement Field The next step is to compute the ray intersection and generate the scalar displacement field. Smooth Domain Surface Displaced Subdivision Surface [Gottschalk, Lin and Manocha 96] OBB-tree SIGGRAPH 2000

18 Displaced subdivision surfaces
2000/07/26 Attribute Resampling As we mentioned before we can also resample other attributes like texture coordinates or color information. The blue lines in the middle picture are the rays shooting from the smooth domain surface to the original mesh. With this DSS representation, we will demonstrate several applications which becomes trivial with this new technique. The first one is mesh editing Original mesh DSS With Scalar Displacement Field DSS with Resampled Texture SIGGRAPH 2000

19 Applications Editing Animation Bump mapping Adaptive tessellation
Compression

20 Displaced subdivision surfaces
2000/07/26 Editing By editing the scalar displacement map like an image processing, we can do the enhancement and perform the embossing easily on the 3D polygonal mesh. The next result we are going to show is interactive animation. Notice that a smooth domain surface is very important in doing smooth deformation. People have tried to use non-smooth domain and didn’t produce very good results… SIGGRAPH 2000

21 Displaced subdivision surfaces
Animation Displaced subdivision surfaces 2000/07/26 Displacement over polyhedral domain, however this results in artifacts when the domain surface is animated On our left hand side is the polyhedral domain surface deformation. By only animating the simple control mesh we can have instant preview on how the animation may look like without performing expensive calculation on the original dense mesh. On our right side is with our DSS deformation. Notice that the final outcome is much better without any artifacts that appeared in the polyhedral domain deformation. Polyhedral Domain Surface (e.g. Gumhold-Hüttner 99) Smooth Domain Surface (DSS) SIGGRAPH 2000

22 Displaced subdivision surfaces
2000/07/26 Bump Mapping Explicit geometry Bump map Same displacement map can be easily converted to a bump map 134,656 faces 8,416 faces 526 faces [Blinn 78] Simulation of wrinkled surfaces SIGGRAPH 2000

23 Adaptive Tessellation
Displaced subdivision surfaces 2000/07/26 Adaptive Tessellation The 4th application is adaptive tessellation. We can adaptively perform the sampling at those places where the displacement is larger than a certain threshold. Threshold 4.0 1.3 #Triangles 6,376 22,190 L2 error 0.13 % 0.05 % SIGGRAPH 2000

24 VIDEO

25 Displaced subdivision surfaces
2000/07/26 Compression Scalar Displacement field Quantizer Entropy Coder M0 Quantizer Entropy Coder Delta encoding with Linear Prediction M1 The 5th application is compression. Since we optimize our domain surface to be so close to the original mesh. Their magnitudes are very suitable for delta encoding. Notice that other sophisticated techniques like zero tree encoding can also be applied. Bit Allocation Quantizer Entropy Coder Mk SIGGRAPH 2000

26 IBM VRML Compressed Binary Format (Draft 4 Implementation)
Compression (Venus) Original Simplified DSS Compression Ratio Mesh Info #V=50002 #F=100000 #V=10002 #F=20000 #V=376 #F=748 (sub 4 times) 23 bits L2 0.0014% 0.027% 0.028% 12 bits L2 0.014% 0.03% 8 bits L2 0.21% 0.15% Kbytes 346 75 17 108 140 33 16 115 69 18 4 410 [Venus Raw Data] 1,800,032 bytes IBM VRML Compressed Binary Format (Draft 4 Implementation)

27 Displaced subdivision surfaces
2000/07/26 Conclusion DSS Representation: Unified representation Simple subdivision rules Analytic surface properties Applications Editing Animation Bump mapping Adaptive tessellation Compression Connectivity and parameterization come for free Image processing tools for scalar displacement field Control mesh provides a convenient skeleton Skinning and enveloping becomes real time. View dependent adaptive LOD SIGGRAPH 2000

28 Q & A

29 Timings and Results Scalar field creation Input size # Base
Simplification Optimization Dataset #triangles domain (mins) (mins) triangles (mins) Armadillo 210,944 1306 61 25 2.5 Venus 100,000 748 28 11 2 Bunny 69,451 1.3 526 19 12 342,138 1564 115 43 4.6 Dinosaur

30 Displaced subdivision surfaces
2000/07/26 DSS Vs Normal Meshes + Single level displacement map Hardware implementation Easy conversion to bump map + Displacements strictly scalar No extraordinary vector displacements Less compression Multilevel displacement map Script here: Better compression SIGGRAPH 2000


Download ppt "Displaced Subdivision Surfaces"

Similar presentations


Ads by Google