A Framework for Analyzing Real-Time Advanced Shading Techniques - PowerPoint PPT Presentation

a framework for analyzing real time advanced shading techniques n.
Skip this Video
Loading SlideShow in 5 Seconds..
A Framework for Analyzing Real-Time Advanced Shading Techniques PowerPoint Presentation
Download Presentation
A Framework for Analyzing Real-Time Advanced Shading Techniques

play fullscreen
1 / 22
Download Presentation
A Framework for Analyzing Real-Time Advanced Shading Techniques
Download Presentation

A Framework for Analyzing Real-Time Advanced Shading Techniques

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. A Framework for Analyzing Real-Time Advanced Shading Techniques John C. Hart University of Illinois Peter K. Doenges Evans & Sutherland

  2. Permuting the Graphics Pipeline • Recent advances in real-time shading order operations differently than the classical graphics pipeline Fragment lighting, texture shading, multipass rendering, multitexturing, environment-mapped bump mapping, normal mapping, … • Use a grammar to express, catalog and analyze real-time shadings techniques

  3. Pipeline Grammar • Data types denote formats of data through the graphics pipeline • Operators denote transformations of the data types into other data types • Operator notation: y = F x z = F G y • Permutation: What if z = G F y?

  4. Shader Data Types xVertex in model coordinates (x,y,z) uSurface parameterization (u,v) s Shading params (s,t,r) or (N,V,L,R,H) u xTexcoords stores at vertex x s x Shader params stored at vertex x xs Vertex in viewport coordinates (xs,ys) c Color vector (R,G,B)

  5. Shader Operators y p Model-to-viewport:x xs d Rasterization:xs xs(lerp + sampling) p Shader: s c p ys x z xs d p

  6. Image Operators C Framebuffer: xs c - Look up a previously stored color in the frame buffer T Texture map: u  c - Look up a texture map location • Assignment: C(xs,ys)  c, T(u,v)  c - Stores a color in a lookup table

  7. Gouraud C d p xdpsx Texture map C d p xT dux Standard Pipeline d p C addr pixel x model d p data pixel s T d data addr u • Modulation • C d p x (dpsx)  (T dux)

  8. Fragment Lighting • Fragment is a rendered sample (e.g. pixel) • Applies shader to each pixel as it is rasterized • Renderman, hardware Phong, bump mapping • What now happens per-pass in modern graphics cards

  9. Fragment Lighting C dpxpdsx • Commutes Gouraud C d p xdpsx d p C addr pixel x model p d data pixel s

  10. Texture Shading v = N.H u = N.L

  11. Texture Shading Precompute shader, store in texture map Use tex coord to index shader parameters T dupsdu C d p x T du sx d u T addr pixel x model p s d data s u u

  12. Modern GPU Org. Geometry(vertex stream) Vertex Shader Setup Rasterization 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 Texture Memory Pixel Shader Tex 0 Tex 1 Tex 2 Frame Buffer

  13. Modern GPU Pipeline C dvxf ((dv s x) (T, T’, T’’, …)) v vertex shader - input: x (and assoc. attributes) - output: screen coords vertex color/attrs f fragment shader - inputs: interpolated pixel color/attrs - access to texture data - output: pixel color

  14. Deferred Shading • Rasterize first • Store shading parameters instead of color in each pixel • Second pass shades each pixel • Shading depth complexity equals one • Fat framebuffer

  15. Deferred Shading • Store shading params: Tdp x d s x • Shade pixel: C xs p T xs d p T addr pixel x model d data s C xs screen p T data s xs

  16. Model Space Texture Map Texture Atlas Shading Plot using u,v Fill using s,t,r Replace s,t,r w/proc. RGB Apply texture map

  17. Texture Atlas Shading • Store solid texcoord: T duxds x • Shade solid texcoord: T du  p T du • Map onto surface: C d p x T dux d T addr u model d data s d T addr u texture p T d data s data u

  18. Texture Coordinate Shaders • Standard Texturing: Cdpx T dux • Pass Thru: Cdpxdux • Dependent Texture: Cdpx T’ T dux • Environment map: T uxpSs x • Environment Mapped Bump Mapping C dpx T d ((ux) + (T’ du’ x))

  19. Shadow Map • Render from eyepoint shadowed C dpxdpsx • Render from eyepoint illuminated C’ dpxdps’ x • Render from light source (unshaded) Cl dplxdx • Backproject to construct shadow mask a C xs (z C xs) > (z Clplp-1xs) • Use to blend shadowed and lit images C xs (a C xs)*(C xs) + (1 – a C xs)*(C’ xs)

  20. Shadow Volume • Shadow volume: x’, stencil buffer: s C • Render scene C dpxdpsx • Store shadow vol. visibility in stencil sCdpx (sCdpx) OR ((z dp x’) > (z Cdp x’)) • Use stencil to combine shadow image C dpx (s C dpx) ? (dps’ x)

  21. Newer Stuff • Gouraud: C d p xdpsx • Phong/Bump: C d p xpdsx • Subdiv/Displace: C d p xpsdx • QSplat: C p dxpsdx Moral: Push the delta right (!?)

  22. Conclusion • Real-time procedural shading causes us to rethink the graphics pipeline • Grammar provides a concise method to describe and compare new pipelines • Future work: classification, new pipelines, sampling