view dependent adaptive tessellation of spline surfaces n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
View-dependent Adaptive Tessellation of Spline Surfaces PowerPoint Presentation
Download Presentation
View-dependent Adaptive Tessellation of Spline Surfaces

Loading in 2 Seconds...

play fullscreen
1 / 47

View-dependent Adaptive Tessellation of Spline Surfaces - PowerPoint PPT Presentation


  • 177 Views
  • Uploaded on

View-dependent Adaptive Tessellation of Spline Surfaces. Jatin Chhugani & Subodh Kumar Johns Hopkins University. Motivation. Why use Splines? CAD/CAM , Entertainment Industry Medical Visualization Examples Submarines Animation Characters Human body especially the heart and brain.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'View-dependent Adaptive Tessellation of Spline Surfaces' - paul2


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
view dependent adaptive tessellation of spline surfaces

View-dependent Adaptive Tessellation of Spline Surfaces

Jatin Chhugani & Subodh Kumar

Johns Hopkins University

motivation
Motivation

Why use Splines?

  • CAD/CAM , Entertainment Industry
  • Medical Visualization
  • Examples
    • Submarines
    • Animation Characters
    • Human body especially the heart and brain
splines
Splines
  • Non-Uniform Rational B-Spline (NURBS)
  • Bezier patch (rational)

Degree m x n

Domain space (u, v)  [0,1] x [0,1]

For 0  i  m, 0  j n,

Control points : pij

Weights: wij

slide5
m n

  wijpij Bmi(u) Bnj (v)

i=0 j=0

F(u,v) =

m n

  wij Bmi(u) Bnj (v)

i=0 j=0

where

Bernstein function Bni (t) = t i (1- t)n-i

rendering splines
Rendering Splines
  • Ray tracing
    • J. Kajiya, T. Nishita et al., J. Whitted
  • Pixel level surface subdivision
    • E.Catmull, M. Shantz et al.
  • Scan-line based
    • J. Blinn, J. Lane et al., J. Whitted
  • Polygonal Approximations
    • Forward (static)
    • Backward (dynamic)
forward technique
Forward Technique
  • View-dependent tessellation
  • Incremental triangulation

Backward Technique

  • Pre-tessellate patches densely
  • Apply polygon simplification
forward technique1
Forward Technique

Advantage

  • Allows arbitrary precision

Disadvantage

  • Significant computation overhead

Backward Technique

  • Advantage
  • Low run-time computation
  • Disadvantages
  • Large storage requirement
  • Upper limit on detail of the model
our approach
Our Approach
  • Hybrid of backward and forward techniques
  • Pre-compute domain samples
  • Select samples and triangulate dynamically
  • Generate additional detail when necessary
domain space tessellation
Domain Space Tessellation
  • Uniform Tessellation
  • Adaptive Tessellation
uniform tessellation1
Uniform Tessellation
  • Fast
    • Step size computation
    • Triangulation
  • Over-tessellation
    • Triangle Rendering Bottleneck
adaptive tessellation1
Adaptive Tessellation
  • Generates triangles only where needed
  • Inefficient
    • Many ‘stopping test’ computations
    • Triangulation algorithm not simple
basic idea
Basic Idea
  • Pre-sample adaptively to some precision
    • Maintain samples in ‘order of importance’
    • More importance in the areas of high curvature
  • At rendering time
    • Select samples
    • Triangulate
  • If higher precision needed
    • Perform uniform tessellation
pre sampling

Pre-Sampling

Choose samples on each patch

questions 1
Questions: #1

For a predefined deviation (between the surface and its triangulation) threshold, what is the minimum number of points required on a patch for a given position and orientation of the patch? And where?

Computationally Intractable

questions 2
Questions: #2

Is there a correlation between these points as the viewing parameters change?

Not Always.

deviation 0 deviation 1 0
Deviation = Δ0Deviation = Δ1 (< Δ0)

No common points (except the end points)

Figure 1

Figure 2

heuristic
Heuristic

Given a triangulation of a surface that deviates by more than Δ, add samples at the points of highest deviation until the resulting deviation is less than Δ.

pre sampling1
Pre-Sampling

1

2

3

4

Domain Space

pre sampling2
Pre-Sampling

1

2

Point A

Point B

3

4

Point of maximum object space deviation for a triangle

pre sampling3
Pre-Sampling

1

2

5

3

4

Domain Space

pre sampling4
Pre-Sampling

1

2

C

5

D

B

A

3

4

Point of maximum object space deviation for a triangle

pre sampling5
Pre-Sampling

1

2

5

6

3

4

Domain Space

what is stored
What is stored ?
  • Ordered set of (u,v) pairs
    • by decreasing deviation
  • Deviation in object space
    • i.e., deviation after the sample is added
  • 3-d Vertex
    • optional
rendering time algorithm

Rendering Time Algorithm

Given screen space deviation bounds

scaling factor for a patch
Scaling Factor for a patch

Scaling Factor for a vector at point P =

Minimum ratio of the length of the vector to its projected length on the image plane.

Q

Ratio =

Q

P

P

Eye

Image Plane

scaling factor for a patch1
Scaling Factor for a patch
  • Pre-processing
    • Partition space
    • For each patch, use the partition containing it
    • If too many partitions for a patch, subdivide patch
  • Run-time (for each frame)
    • Compute the scaling factor for each partition
    • Scaling factor a patch is that of its partition
runtime algorithm
Runtime Algorithm
  • Compute max allowable deviation (say c)
  • Let p = max deviation in current triangulation
  • if (c > p)
    • delete domain samples having deviation less than c
    • update triangulation
example
Example

P1

P2

P3

P4

P5

P6

P7

P8

UV Values

26

24

21

19

14

13

6

3

Deviation

Here p = 3

Let c = 20

UV Values

P1

P2

P3

P4

26

24

21

19

Deviation

runtime algorithm1
Runtime Algorithm
  • if (c < p)
    • add domain samples having deviation greater than c
    • update triangulation
    • if pre-computed set is exhausted
      • Uniformly tessellate triangles having deviation greater than c
adaptive uniform tessellation
Adaptive + Uniform Tessellation

Pre-computed Samples

Computed at run time to uniformly tessellate triangles having deviation greater than threshold

potential problem

Potential Problem

Cracks in the model

crack1

Boundary Curve

Crack

v

u

Samples on the boundary curve for left patch

Samples on the boundary curve for the right patch

Different samples on adjacent boundary curves

crack prevention
Crack Prevention
  • Sample the boundary curves separately from the interior, to prevent cracks in adjacent patches.
  • Modify the interior patch sampling by deleting points too close to the boundary.
crack prevention1
Crack Prevention

Boundary Curve

v

u

Samples on the boundary curve for the two adjacent patches

Same samples on adjacent boundary curves

results
Results

Model details

results1
Results

Pre-sampling Performance

results2
Results

Comparison for average number of triangles generated per frame

[20]: “Interactive display of large NURBS models” by S. Kumar, D. Manocha and A. Lastra

results3
Results

Run-time behavior of our algorithm

conclusions
Conclusions
  • Combines forward and backward techniques
  • Uses adaptive and uniform tessellation
  • Low triangle count, small memory footprint
  • Applicable to class of parametric surfaces
  • Towards real-time spline surface rendering
acknowledgements
Acknowledgements
  • Shankar Krishnan
  • Lifeng Wang
  • UBC Modeling group
  • Alpha 1 Modeling system
  • National Science Foundation