Loading in 5 sec....

Suggestive Contours with Geometry ShaderPowerPoint Presentation

Suggestive Contours with Geometry Shader

- 205 Views
- Uploaded on
- Presentation posted in: General

Suggestive Contours with Geometry Shader

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

Suggestive Contours withGeometry Shader

Based on Suggestive Contours for Conveying ShapeSIGGRAPH 2003

Sungbae Kim

Master Student

College of Computing

Georgia Tech

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 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
- Geometry shader

Geometry Shader

- 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

triangle with adjacency

Draw edges between front and back face

My motivation

Example from NVIDIA OpenGL SDK 10

Using GPU

- Pre-compute curvatures, dcurvatures in CPU when loading mesh
- 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