real time rendering
play

Real-time Rendering Course Title Topic Overview CSE CSE 781 - PDF document

1/1/2011 Real-time Rendering Course Title Topic Overview CSE CSE 781 Prof. Roger Crawfis Prof. Roger Crawfis The Ohio State University Agenda (week1) Agenda (week 2) History of OpenGL Course Overview Understanding the backward


  1. 1/1/2011 Real-time Rendering Course Title Topic Overview CSE CSE 781 Prof. Roger Crawfis Prof. Roger Crawfis The Ohio State University Agenda (week1) Agenda (week 2)  History of OpenGL  Course Overview  Understanding the backward capabilities and some  The OpenGL 1.0 pipeline and the of the ugliness in the current specification.  History of Shading Languages OpenGL 3.0 pipeline  History of Graphics Hardware  The OpenGL Shading Language – GLSL  Understand where we came from and why some of the literature / web sources may no longer be valid.  Simple GLSL shader examples  Appreciate modern Stream-based Architectures.  Homework #1  Review of OpenGL and basic Computer Graphics  Lab 1 Agenda (weeks 3 thru 5) Agenda (week 6)  The GPU vs. the CPU  Implementing a Trackball interface  Performance trends  Frame Buffer Objects  Virtual Machine Architecture (DirectX 10)  Multi-texturing and a 3D Paint application  Specific Hardware Implementations (lab2)  nVidia timeline and the G80 architecture.  Environment Mapping  XBox 360.  Normal and Displacement Mapping  Future Trends  Mixed cores  Lab3.  Intel’s Larrabee 1

  2. 1/1/2011 Agenda (weeks 7 and 8) Agenda (week 9)  Lab 3 specification (multiple render targets  Final Project specifications and geometry shaders)  Aliasing  Hierarchical z-buffer and z-culling  Fourier Theory  Shadow algorithms  Full-screen anti-aliasing  Planar shadows  Ambient occlusion  Texture filtering and sampling  Shadow volumes  Shadow map filtering  Shadow maps  Aliasing and precision issues Agenda (week 10) Course Overview  Special topics (TBD from)  Prerequisites  Animation and Skinning  CSE 581 or knowledge of OpenGL and basic computer graphics (linear algebra,  OpenGL in a multi-threading context coordinate systems, light models).  High-performance rendering  Good programming skills (C/C++/C#/Java)  Frustum culling  Interested in Computer Graphics:  Clip-mapping  Love graphics and want to learn more  Non-photorealistic rendering  Be willing to learn things by yourself and try out  Volume rendering cool stuff Reference Reference (cont’d)  Real-Time Rendering by Tomas Akenine-Moller ,  OpenGL Shading Language by Randi J. Eric Haines and Naty Hoffman (3 rd edition) Rost, Addison-Wesley  High-level overview  The Orange Book of many algorithms (many obsolete).  Available on-line for free through OSU’s  Need to read reference Safari account. papers to truly understand techniques. 2

  3. 1/1/2011 Reference Other References  Advanced Graphics  3D Games I/II by Alan Programming Using Watt and Fabio OpenGL by Tom Policarpo, Addison- McReynolds and David Wesley Blythe (Publisher: Morgan  OpenGL Programming Kaufmann/Elsevier) Guide (OpenGL 2.0), Addison-Wesley  SIGGRAPH Tutorials and papers Grading Policy What is this course about?  Three labs and one final project: 70%  Advanced real time rendering algorithms (GPU-based)  Three individual labs  Small team project (grad versus undergrad)  We will use OpenGL as the API.  Exam: 20%  Misc 15%  Homework, quizes , …  class attendance Rendering Graphics hardware platform  All labs are to be done on Microsoft Windows  Graphics rendering Application machines using Visual Studio 2008 or 2010 in C++. pipeline  You will need a DirectX 10 or better class graphics card ( n Vidia GeForce 8800 or better, or ATI Radeon  Geometry processing Geometry 2400 or better).  Rasterization  Graphics Lab – CL D has several PCs with  Raster ops n Vidia GeForce 8800 GTX or 450 GTS cards. These machines are reserved for the graphics courses, so Rasterizer kick other students out.  Note: Dr. Parent’s Animation Project course is also this quarter and they need to access to some of the machines that have Maya installed. Image 3

  4. 1/1/2011 Quick Review of OpenGL Review of Graphics Theory  OpenGL is:  Linear Algebra  Coordinate Systems  A low-level API  Transformations  OS independent  Projections  Window system independent  Lighting  Consortium controlled standard  Gourand’s lighting model and shading  Geometry in OpenGL consists of points, lines,  Phong’s lighting model and shading triangles, quadrilaterals and a general polygon.  Note: OpenGL 1.5 can not fully implement Phong lighting.  OpenGL allows (use to allow?) for different  Other major lighting models appearances through changes in state settings  Texture Mapping  Current color  Parameterization  Current normal  Sampling  Lighting enabled / disabled  Filtering The (Traditional) OpenGL 3.2 OpenGL 1.5 Quiz Pipeline Application Vertex Shader transformed vertices and data Geometry Shader Note: All of the shaders have access to (pseudo) constants (more on this later). Rasterizer Fragments with interpolated data texture Fragment Shader pixel color, depth, stencil (or just data) Compositor Display The Stream Model The Stream Model  The pipeline diagram does not do the process justice.  In reality, there are three simultaneous  Think of an OpenGL machine as a simplified assembly line. assembly lines running at the same time.  To produce widget A: Similar to plant A produces pistons, Plant B  Stop assembly line produces engines and Plant C produces  Load parts into feed bins  Set operations and state for the A’s process assembly cars.  Restart the assembly line  Streams parts for A through the line  Yes, I am being abstract.  To produce widget B:  Previous programming to the pipeline  Stop assembly line  Load parts into feed bins required you to map data to specific  Set operations and state for the B’s process assembly concrete objects, so it actually helps to  Restart the assembly line think of the OpenGL pipeline abstractly first.  Streams parts for B through the line 4

  5. 1/1/2011 The Stream Model The Stream Model 1. The Vertex Shader The Geometry Shader 2.  Takes as input a primitive (e.g. a triangle) defined as a  Takes in a single vertex and associated collection of vertices, and data associated at each vertex. data (called attributes – normal, color,  May also have access to adjacent primitives and their vertices and data. texture coordinates, etc.).  Outputs either:  Outputs a single vertex (3D point) and  Nothing - kills the primitive associated data (not necessarily the same  A similar primitive or set of primitives with associated data.  A completely different primitive (e.g. a line strip) or set of data from above). primitives and associated data. Primitive and data Vertex Shader Geometry Shader transformed vertices and data Primitive(s) and data The Stream Model The Stream Model  Some key points to consider / remember: The Fragment Shader (Pixel Shader in DirectX) 3.  If the wrong parts are feed into the system then the  Takes as input a fragment (pixel location), the depth results are meaningless or the assembly line crashes. associated with the fragment and other data.  For example, if ¾” hex nut bolts are needed and ½” phillips  Outputs either: screws are feed into the system the manifolds may fall off.  Nothing – kills the fragment  What other resources does the system have access to?  A single RGBA color and a depth value  Something like grease may be considered an infinite resource at one or more stations.  A collection of RGBA color values and a single depth value  The specific locations of welding sites and bolt placement.  A collection of data and a single depth value  How do we prevent one Plant from either swamping  May also include a single optional stencil value another plant with parts or preventing it from running Depth with interpolated data due to low inventory? Fragment Shader Color(s), depth, stencil (or just data) The Stream Model The Real Pipeline Top Secret Top Secret vertexStream List< T > Initial Vertex Transformed fragmentStream List<Triangle< U’ >> data format Vertex data  So, to make a triangleStream List< V’ > Re-Processed Vertex Shader format Vertex data format functional OpenGL transformed vertices and data Shader Program , Geometry Shader we need to connect Process Vertex Shader Data Fragment Process Geometry Process the three Rasterizer Shader Data Shader Data independent shaders vertexStream Fragments with Transformed texture List< U > Vertex data Re-Processed List<Primitive< V >> Final fragment List<List< D >> fragmentStream interpolated data format Vertex data triangleStream format together. format Fragment Shader  But, they do not pixel color, depth, stencil (or just data) connect!!! Compositor Top Secret Raster Ops Top Secret Display 5

Recommend


More recommend