Suggestive Contours with Geometry Shader

Slides:



Advertisements
Similar presentations
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Advertisements

Sorce: Suggestive Contours for Conveying Shape. (SIGGRAPH 2003) Doug DeCarlo, Adam Finkelstein, Szymon Rusinkiewicz, Anthony Santella. 1 Suggestive Contours.
GI 2006, Québec, June 9th 2006 Implementing the Render Cache and the Edge-and-Point Image on Graphics Hardware Edgar Velázquez-Armendáriz Eugene Lee Bruce.
Results / Compared to Relief Mapping It does not scale linearly with screen coverage as does the other techniques. However, for larger displacements, it.
GM(Graphics Masters) CSE 이동형 CSE 최태준 CSE 신재훈.
Suggestive Contours for Conveying Shape Doug DeCarlo, Adam Finkelstein, Szymon Rusinkiewicz, and Anthony Santella.
Meshes Dr. Scott Schaefer. 3D Surfaces Vertex Table.
1 Hardware Feature Edges June 7, 2004 Morgan McGuire and John F. Hughes Brown University NPAR 2004 Hardware Feature Edges.
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering Cass Everitt and Mark J. Kilgard Speaker: Alvin Date: 5/28/2003 NVIDIA.
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 19, 2011 Emergence of GPU systems and clusters for general purpose High Performance Computing.
Suggestive Contours Final programming assignment Advanced topics in Computer Graphics.
Approximate Soft Shadows on Arbitrary Surfaces using Penumbra Wedges Tomas Akenine-Möller Ulf Assarsson Department of Computer Engineering, Chalmers University.
PA1 Supplementary notes 1 Programming assignment You need to implement the following: 1. Display basic mesh Information Find the number of vertices, edges,
The edge buffer : A data structure for easy silhouette rendering by John W. Buchanan and Mario C. Sousa.
GPU Tutorial 이윤진 Computer Game 2007 가을 2007 년 11 월 다섯째 주, 12 월 첫째 주.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Under the Hood: 3D Pipeline. Motherboard & Chipset PCI Express x16.
SIGGRAPH 2007 Tilke Judd Frédo Durand Edward Adelson.
What is ? Open Graphics Library A cross-language, multi-platform API for rendering 2D and 3D computer graphics. The API is used to interact with a Graphics.
Under the Hood: 3D Pipeline. Motherboard & Chipset PCI Express x16.
INTRO TO COMPUTER GRAPHICS TEXT EDWARD ANGEL: EDITION 5 CS770/870
Sebastian Enrique Columbia University Real-Time Rendering Using CUReT BRDF Materials with Zernike Polynomials CS Topics.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
Andrew Nealen / Olga Sorkine / Mark Alexa / Daniel Cohen-Or SoHyeon Jeong 2007/03/02.
Now days, sampled 3D models become more widespread in many fields and applications. It is often necessary to have a credible 2D model that emphasizes.
Rendering Fake Soft Shadows with Smoothies Eric Chan Massachusetts Institute of Technology.
Computer Graphics Basic 3D Geometry CO2409 Computer Graphics Week 5-1.
Accelerated Stereoscopic Rendering using GPU François de Sorbier - Université Paris-Est France February 2008 WSCG'2008.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Based on paper by: Rahul Khardekar, Sara McMains Mechanical Engineering University of California, Berkeley ASME 2006 International Design Engineering Technical.
Ramesh Raskar University of North Carolina at Chapel Hill Ramesh Raskar University of North Carolina at Chapel Hill Image Precision Silhouette Edges Michael.
A Neural Network Implementation on the GPU By Sean M. O’Connell CSC 7333 Spring 2008.
Vertices, Edges and Faces By Jordan Diamond. Vertices In geometry, a vertices is a special kind of point which describes the corners or intersections.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
Ray Tracing using Programmable Graphics Hardware
Non-Photorealistic Rendering FORMS. Model dependent Threshold dependent View dependent Outline form of the object Interior form of the object Boundary.
Non-Photorealistic Rendering FORMS. Model dependent Threshold dependent View dependent Outline form of the object Interior form of the object Boundary.
09/23/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Reflections Shadows Part 1 Stage 1 is in.
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.
Applications and Rendering pipeline
By Joey Green. What is a geometry shader? Demo Go over code More geometry shader info Transform Feedback Render To Cube Map Final Project.
1 Real-Time High-Quality View-dependent Texture Mapping using Per-Pixel Visibility Damien Porquet Jean-Michel Dischler Djamchid Ghazanfarpour MSI Laboratory,
Spring 2006 G5BAGR – Advanced Computer Graphics
CENG 477 Introduction to Computer Graphics
Programmable Pipelines
Graphics on GPU © David Kirk/NVIDIA and Wen-mei W. Hwu,
Introduction to OpenGL
Chapter 6 GPU, Shaders, and Shading Languages
From Turing Machine to Global Illumination
CS451Real-time Rendering Pipeline
Real-time Computer Graphics Overview
Introduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL
Chapter VI OpenGL ES and Shader
Graphics Processing Unit
Lecture 13 Clipping & Scan Conversion
CS5500 Computer Graphics April 17, 2006 CS5500 Computer Graphics
Ray Tracing on Programmable Graphics Hardware
Computer Graphics Introduction to Shaders
Real-time Image Vectorization on GPU
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Introduction to OpenGL
Computer Graphics (under.) Sep., 2017
OpenGL-Rendering Pipeline
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

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 - effective Contours and Suggesstive Contours [DeCarlo et al. 2003]

Related work Contour (also called silhouette) Crease Contour : lack of information Crease : well for polyhedral objects Crest : lack of view dependent nature that hand-drawn pictures possess 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

How to compute Kr=0 in mesh Primary direction 1 Primary direction 2 w 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

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