Results / Compared to Relief Mapping It does not scale linearly with screen coverage as does the other techniques. However, for larger displacements, it.

Slides:



Advertisements
Similar presentations
Advanced Visual Effects with Direct3D
Advertisements

Tesselation Shaders. Tesselation  dictionary definition of tesselate is the forming of a mosaic.
Exploration of bump, parallax, relief and displacement mapping
Two Methods for Fast Ray-Cast Ambient Occlusion Samuli Laine and Tero Karras NVIDIA Research.
Occlusion Culling Fall 2003 Ref: GamasutraGamasutra.
Damon Rocco.  Tessellation: The filling of a plane with polygons such that there is no overlap or gap.  In computer graphics objects are rendered as.
Mesh Simplification Global and Local Methods:
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
HCI 530 : Seminar (HCI) Damian Schofield.
Introduction to Geometry Shaders Patrick Cozzi Analytical Graphics, Inc.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
Modelling. Outline  Modelling methods  Editing models – adding detail  Polygonal models  Representing curves  Patched surfaces.
Content Subdivision First some basics (control point polygon, mesh)
Approximate Soft Shadows on Arbitrary Surfaces using Penumbra Wedges Tomas Akenine-Möller Ulf Assarsson Department of Computer Engineering, Chalmers University.
Game Engine Design ITCS 4010/5010 Spring 2006 Kalpathi Subramanian Department of Computer Science UNC Charlotte.
Fluid Surface Rendering in CUDA Andrei Monteiro Marcelo Gattass Assignment 4 June 2010.
© 2004 Tomas Akenine-Möller1 Shadow Generation Hardware Vision day at DTU 2004 Tomas Akenine-Möller Lund University.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
1 Occlusion Culling ©Yiorgos Chrysanthou, , Anthony Steed, 2004.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Computer graphics & visualization REYES Render Everything Your Eyes Ever Saw.
CSE 381 – Advanced Game Programming Basic 3D Graphics
Dynamic Meshing Using Adaptively Sampled Distance Fields
Week 2 - Wednesday CS361.
Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures Vision, Modeling, Visualization Erlangen, Germany November 16-18,
NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen
Sebastian Enrique Columbia University Real-Time Rendering Using CUReT BRDF Materials with Zernike Polynomials CS Topics.
Week 11 - Thursday.  What did we talk about last time?  Image processing  Blurring  Edge detection  Color correction  Tone mapping  Lens flare.
Surface displacement, tessellation, and subdivision Ikrima Elhassan.
TERRAIN SET09115 Intro to Graphics Programming. Breakdown  Basics  What do we mean by terrain?  How terrain rendering works  Generating terrain 
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
1 Rendering Geometry with Relief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
Accelerated Stereoscopic Rendering using GPU François de Sorbier - Université Paris-Est France February 2008 WSCG'2008.
1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009.
BUMP-MAPPING SET09115 Intro to Graphics Programming.
Mark Nelson 3d projections Fall 2013
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
Graphics Interface 2009 The-Kiet Lu Kok-Lim Low Jianmin Zheng 1.
Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba.
Discontinuous Displacement Mapping for Volume Graphics, Volume Graphics 2006, July 30, Boston, MA Discontinuous Displacement Mapping for Volume Graphics.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
Hierarchical Occlusion Map Zhang et al SIGGRAPH 98.
DPL3/10/2016 CS 551/651: Simplification Continued David Luebke
Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba.
Graphics Pipeline Bringing it all together. Implementation The goal of computer graphics is to take the data out of computer memory and put it up on the.
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
A novel approach to visualizing dark matter simulations
1 Real-Time High-Quality View-dependent Texture Mapping using Per-Pixel Visibility Damien Porquet Jean-Michel Dischler Djamchid Ghazanfarpour MSI Laboratory,
- Introduction - Graphics Pipeline
Week 12 - Thursday CS361.
Real-Time Soft Shadows with Adaptive Light Source Sampling
POLYGON MESH Advance Computer Graphics
Introduction to OpenGL
The Graphics Rendering Pipeline
CS451Real-time Rendering Pipeline
Graphics, Modeling, and Textures
Introduction to Computer Graphics with WebGL
Chapter V Vertex Processing
Lecture 13 Clipping & Scan Conversion
Introduction to Computer Graphics with WebGL
Special Models for Animation
Computer Graphics Introduction to Shaders
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Presentation transcript:

Results / Compared to Relief Mapping It does not scale linearly with screen coverage as does the other techniques. However, for larger displacements, it is superior to the quality and performance of the other methods. ProsCons + Easily handles silhouettes- Requires Shader Model Good for large scale displacements- Uses memory for streaming buffers + Geometry based, no stepping / Z artifacts- Needs high tessellation for fine details Conclusions and Future Work We have successfully implemented triangle mesh tessellation and displacement mapping entirely on a next generation GPU. Furthermore we have managed to reconstruct high detail meshes from a simple control mesh and height map. We believe that the advantages in using real geometry for adding (coarse) surface detail and for reconstructing high detail meshes will, in time, outweigh the added cost. However, for finer surface details, simple normal, parallax, and relief mapping will most likely remain superior. The geometry shader allows accessing information on adjacent primitives and as such does make way for better subdivision schemes. This would be interesting to investigate using a better subdivision method as in [3] and building a tool for creating the control mesh and displacement map for this method, as was done in [2] for Loop subdivision surfaces. Further enhancements could include detecting triangles covering areas of non-changing values in the normal map and avoid tessellating these triangles further. References and Acknowledgements [1] Loop, Charles Smooth Subdivision Surfaces Based on Triangles, 1987 [2] Hoppe, Hugues et al. Displaced subdivision surfaces, Proc. SIGGRAPH, 2000 [3] Vlachos, Alex et al. Curved PN Triangles, Proc. SI3D,2001 [4] Akenine-Möller, Tomas et al. Real-Time Rendering 2nd Ed., p , 2002 [5] NVIDIA OpenGL Extension Specifications for the GeForce 8 Series Architecture (G8x), 2007 Huge thanks to Peder Johansen and Anders Scheel Nielsen for giving invaluable feedback and for providing the models used in this project. High Detail Mesh Reconstruction Highly detailed meshes look great – but they come at a cost. They take up space, they are expensive to animate and they do not lend themselves easily to high quality level of detail rendering techniques[4]. Hoppe et al. [2] provide an elegant solution to this problem, but being based on Loop subdivision [1], the technique is not (yet) applicable to GPU rendering. Introduction With the introduction of Shader Model 4.0, even more flexibility has been provided when programming the GPU. Our project has set out to investigate where the new methods for adding surface detail differs from the current. More specifically we will compare relief mapping using Shader Model 3.0 to displacement mapping using geometry shaders. This project has been done in collaboration with the group of Peder Johansen and Anders Scheel Nielsen. Technologies Used Geometry Shaders Geometry shading has been added as a major feature of Shader Model 4.0. They do not literally shade anything, but they do allow manipulation of the geometry in the graphics pipeline. The geometry shader takes as input single primitives and is able to output 0 to N primitives. Although N is limited ( implementation specific), this is ideal for tessellation. We use simple tessellation, where each triangle is potentially turned into 4 triangles, with newly created vertices on the midpoints of the original triangle edges. Transform Feedback With the addition of the transform feedback functionality it is possible to write geometry back into a vertex buffer after the geometry shader stage, without rasterization. Features Implemented Using the technologies described above, we have implemented a number of features. Streaming Tessellation The above two features working together means that we can tessellate our triangle mesh using a streaming method. We need 3 buffers to do this; 1 for the initial mesh and 2 temporary buffers to hold the result of the tessellation. First we stream our initial mesh through the tessellating kernel (geometry shader) to the first temp buffer. Then, as with double buffering, we stream from one temp buffer to the other, and then swap them, until we have reached the desired tessellation level (or no additional triangles have been created since the previous iteration). Finally we draw the geometry using ordinary normal mapping to add the last, fine detail to the lighting. Displacement Mapping Simple tessellation, in contrast to subdivision surfaces [1], does not add any surface detail in itself. We have implemented displacement mapping to add such detail to the tessellated mesh. Triangle vertices are simply displaced along the direction of the vertex normal accordingly to the height in the height map. Continuous Level of Detail Very small triangles usually do not add to the visual quality of the image. We have implemented a CLoD method based on screen space triangle sizes. Triangles with edges of length beneath a threshold, we do not tessellate further. We have also added a simple test to avoid tessellating triangles directly facing the viewer. High Detail Mesh Reconstruction Inspired by Hoppe et al. [2] we use the above techniques to reconstruct a high poly model from a low poly version. See middle column for further explanation. Frustum Culling We avoid subdividing triangles outside the view frustum, by culling each triangle against the view frustum in the geometry shader. Since we are potentially displacing a triangle from outside the frustum to the inside, we need to test the bounding box of the extruded volume of the displaced triangle. Daniel Povlsen Displacement Mapping using Geometry Shaders Displacement mapping needs high tessellation for finer details Silhouettes are easily handled without artifacts MeshTrisFPS Control Level Level Level Original Our idea is based on the same concept; from a detailed mesh, we use a tool to create a simplified control mesh and a normal / height map. During rendering we tessellate the control mesh to get a finer mesh and then displace it to reconstruct surface and silhouette details. By controlling the tessellation level we get continuous LoD almost for free and it is necessary only to animate the control mesh to get a fully animated reconstructed mesh. The 5 Stanford bunnies to the left, from the top, are; the control mesh, 3 levels of reconstructed high detail meshes and at the bottom the original bunny mesh. As can be seen in the middle image, the silhouette is already pretty good at only two levels of subdivision. Continuous Level of Detail Initially we based our level of detail selection on projected screen area of the triangles. However, not using the ability to look up information on neighboring triangles, we opted to make the decision based on triangle edges. If an edge of a triangle is longer than a threshold limit, we tessellate the triangle. The calculation for the adjacent triangle, sharing this edge, will be identical and both will be tessellated. Special care must be taken to avoid T-cracks, when an edge of a tessellated triangle is shared with a non- tessellated triangle. We handle this case by only morphing new vertices on longer edges to their final displacement, while vertices on shorter edges are kept on the edge. This works very well if no two adjacent triangles are more than a single subdivision level apart. When the input mesh has similar sized triangles, this is not a problem. LoDs and original mesh Rendering Performance We have tested rendering performance of the Stanford bunny in 4 different levels of detail; starting with the control mesh. For comparison the original mesh is included as well. The test was done on a NVIDIA 8800GTX card in 1920x1200 resolution. In collaboration with the other group we have performance tested the different methods using the cube shown at the bottom of the middle coloumn. The graph on the right speaks for itself. Displacement mapping is not a cheap technique for adding fine surface details Distance FPS Parallax Occlusion Linear Parallax Occlusion linear restart Parallax Occlusion Binary Parallax Linear & binary Relief Mapping Curvature Real Displacement Mapping