This presentation is the property of its rightful owner.
1 / 20

# Suggestive Contours with Geometry Shader PowerPoint PPT Presentation

Suggestive Contours with Geometry Shader. Based on Suggestive Contours for Conveying Shape SIGGRAPH 2003. Sungbae Kim Master Student College of Computing Georgia Tech. Conveying shape with lines. Contours and Suggesstive Contours [DeCarlo et al. 2003]. Related work. Contour

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

Based on Suggestive Contours for Conveying ShapeSIGGRAPH 2003

Sungbae Kim

Master Student

College of Computing

Georgia Tech

### Conveying shape with lines

Contours and Suggesstive Contours

[DeCarlo et al. 2003]

### Related work

Contour

(also called silhouette)

Crease

Ridges and valleys

(also called crest)

Rusinkiewicz, SIGGRAPH 2005 Course note

### Suggestive Contours

• Contours have shape cue

• Contours in nearby viewpoints also have shape cue

 Suggestive Contours

• Contours + Suggestive Contours

q : contour

p : suggestive contour

Should appear suddenly

[DeCarlo et al. 2003]

### How to find contours

• Draw lines where N(P)∙V(P) = 0

### How to find SC

• Contours in nearby viewpoints

local minima n∙v

Kr = 0 && DwKr > 0

[DeCarlo et al. 2003]

### How to find contours in mesh

• Compute Per vertex

• Draw zero crossing

Rusinkiewicz, SIGGRAPH 2005 Course note

Primary direction 1

Primary direction 2

w

### How to compute Kr=0 in mesh

• K1, K2 can be pre-computed per vertex

• Compute Per vertex

• Draw zero crossing

Kr > 0

Kr < 0

Kr < 0

### How to compute DwKr > 0 in mesh

Rusinkiewicz, SIGGRAPH 2005 Course note

• P, Q, S, T can be pre-computed per vertex

• Compute Per vertex

• Interpolation

Primary direction 1 : e1

Kr > 0

v

DwKr > 0

u

Kr=0

w

Primary direction 2 : e2

Kr < 0

Kr < 0

## Implementation

CPU - Intel Core2 Duo 2.0GHz, RAM - 2GB, VIDEO Card – NVIDIA Quadro FX 570M

### Implementation Challenges

• Calculation values from mesh

• Primary directions

• Primary curvatures

• Derivatives of curvatures (P, Q, R, S)

Use TriMesh library

• Cg is very easy

• Operation Per Primitives (line, triangle, line with adjacency, triangle with adjacency, etc.)

• Generating new primitives such as line, triangle

• Few references

• Several examples from NVIDIA

Draw edges between front and back face

My motivation

Example from NVIDIA OpenGL SDK 10

### Using GPU

• View-dependent calculation and line generation in Vertex & Geometry shader

• Use texture coordinates as input arguments

• Too many vertices, normals, faces, texture coordinates

• Use buffer object

### Remove hidden lines

• Using z-buf

• 2-pass rendering

• 1st pass : Setting depth values by Rendering mesh

• 2nd pass : line drawing

### Results

vertices : 48484

triangles : 96964

51 fps

Horse

### Results

vertices : 72027

triangles : 144046

34 fps

Bunny

### Results

vertices : 262909

triangles : 525814

10 fps

Lucy

### Results

vertices : 237018

triangles : 474048

3.5 fps

Angel

### Results

vertices : 437645

triangles : 871414

6 fps

Dragon

### Results

vertices : 543652

triangles : 1087116

4 fps

Happy Buddha