tutorial 5: programming graphics hardware advanced ...€¦ · techniques matthias m wloka....
TRANSCRIPT
![Page 1: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/1.jpg)
Tutorial 5: Programming Graphics Hardware
Advanced Rendering Techniques
Advanced Rendering Techniques
Matthias M Wloka
![Page 2: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/2.jpg)
Tutorial 5: Programming Graphics Hardware
Nalu
![Page 3: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/3.jpg)
Tutorial 5: Programming Graphics Hardware
Acknowledgements
Hubert Nguyen
William Donnelly
NVIDIA Demo Team
![Page 4: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/4.jpg)
Tutorial 5: Programming Graphics Hardware
Long Blonde Hair
LongRequires dynamic animation
Thus cannot bake lightingRequires lots of hair
Thus shading has to be fast
BlondeThree visible highlights, black only has oneShadows much more visible
![Page 5: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/5.jpg)
Tutorial 5: Programming Graphics Hardware
Hair Rendering: Overview
Geometry and dynamics
Shading
Shadowing
![Page 6: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/6.jpg)
Tutorial 5: Programming Graphics Hardware
Hair Geometry, Part 1
“Skull cap” specifiesWhere control hairs growWhich direction to growGrowth is non-linear
762 control hairsEach is 7 vertices long
![Page 7: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/7.jpg)
Tutorial 5: Programming Graphics Hardware
Hair Dynamics
Treat control hairs as particle system
For all (7 * 762) vertices in control hairs doPhysics simulation Collision detection and reactionVertices of each control hair
LinkedDistance-constrained
![Page 8: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/8.jpg)
Tutorial 5: Programming Graphics Hardware
Physics Simulation
Uses Verlet integrationPrevious frame’s position computes velocityLess sensitive to frame rate
Apply forces, then apply constraintsIterativelyParticles convergeThus take head-motion into account
![Page 9: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/9.jpg)
Tutorial 5: Programming Graphics Hardware
Now Have 762 7-Vertex Control Hairs
Turn each control hair into 6 basic Bezier curves1 control hair has 6 segments1 basic Bezier requires 2 points and 2 tangents
Concatenate and tessellate each set of 6 basic Bezier curves
Creates smooth control hair
![Page 10: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/10.jpg)
Tutorial 5: Programming Graphics Hardware
Interpolate 3 smooth control hairs at a timeGenerates total of 4095 individual hairs
Interpolation is post-tessellationPerformance reasons:Tessellation is expensive
Generates ~123k total vertices for hair alone
Interpolate Control Hairs
![Page 11: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/11.jpg)
Tutorial 5: Programming Graphics Hardware
Wire-Frame Demo
![Page 12: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/12.jpg)
Tutorial 5: Programming Graphics Hardware
Hair Shading Based On
“Light Scattering from Human Hair Fibers”
By Steve Marschner, Henrik Wann Jensen, Mike Cammarano, Steve Worley, and Pat Hanrahan
SIGGRAPH 2003
![Page 13: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/13.jpg)
Tutorial 5: Programming Graphics Hardware
Paper Models 3 Distinct Highlights
Uses path notationR is reflectionT is transmission
Figures from “Light Scattering from Human Hair Fibers” (see previous slide)
![Page 14: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/14.jpg)
Tutorial 5: Programming Graphics Hardware
R and TRT Highlights
R – white primary highlight
TRT – colored secondary highlight
Picture from “Light Scattering from Human Hair Fibers” (see previous slides)
![Page 15: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/15.jpg)
Tutorial 5: Programming Graphics Hardware
TT Highlight
TT – strong forward scattering componentImportant for underwater hair
![Page 16: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/16.jpg)
Tutorial 5: Programming Graphics Hardware
Hair Model Is 4-Dimensional Function
Factor into lower dimensional termsM_R (thetaH) * N_R (thetaD, phiD)
+ M_TT (thetaH) * N_TT (thetaD, phiD)+ M_TRT(thetaH) * N_TRT(thetaD, phiD)
Use 2D textures to encode as look-up tablescos(thetaL), cos(thetaE) → M_R, M_TT, M_TRT, cos(thetaD) cos(thetaH), cos(phiD)→ N_R, N_TT, N_TRT
![Page 17: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/17.jpg)
Tutorial 5: Programming Graphics Hardware
Make Most Aspects Tweakable
Highlights:SeparationStrengthWidth
Hair albedo
Extinction coefficient
Index of refraction
![Page 18: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/18.jpg)
Tutorial 5: Programming Graphics Hardware
Hair Shading Demo
![Page 19: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/19.jpg)
Tutorial 5: Programming Graphics Hardware
Shadowing
“Opacity Shadow Maps”
By Tae-Yong Kim and Ulrich Neumann
SIGGRAPH 2001
![Page 20: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/20.jpg)
Tutorial 5: Programming Graphics Hardware
Why Opacity Shadow Maps
Opacity shadow maps ask:What percentage of light is blocked from here?Vs. Is the light blocked from here?
Thus supports AA edges and volumetric rendering
Regular shadow maps alias around edges
Hair is 100% edges
![Page 21: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/21.jpg)
Tutorial 5: Programming Graphics Hardware
Pictures From Tae-Yong Kim’s Website
No Shadows 15 slices 255 slices
![Page 22: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/22.jpg)
Tutorial 5: Programming Graphics Hardware
For Each Point In Map Compute:
T(z): amount of light penetrating to depth z
For hair:Integral is sum over all strands between light and point being shadowed
Compute sum via additive blending“Extinction coefficient” K controls darkness of shadows
![Page 23: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/23.jpg)
Tutorial 5: Programming Graphics Hardware
Creating the Opacity Maps
Choose 16 slicing planes in hairUniform distributionIn hair bounding sphere
For each hair-pixel and for each planeIs hair-pixel closer to light than plane?Yes: add hair to contribution (plane)No: do nothing
![Page 24: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/24.jpg)
Tutorial 5: Programming Graphics Hardware
Opacity Map Creation Implementation
Render all hairs to 4 render targetsEach ARGB stores 4 planes4 passes
Render all hairs to 4 MRTs1 passMRT shader is simple: 4 SLT and 4 MUL instructions
![Page 25: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/25.jpg)
Tutorial 5: Programming Graphics Hardware
Using the Opacity Maps
Hair-pixel position determinesWhich opacity maps to look inWhere in opacity map to look in
Hair-pixel positions generated by linesLinearly interpolated vertex values are equivalent
![Page 26: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/26.jpg)
Tutorial 5: Programming Graphics Hardware
Using Opacity Maps Implementation
Vertex-shader computesTexture coordinates for all 16 mapsBlend-weights to use
Pixel-shader combines 16 look-upsVia 5 dot4 instructions
Add z-bias due counter limited z-resolutionJust like regular shadow maps
![Page 27: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/27.jpg)
Tutorial 5: Programming Graphics Hardware
Shadowing Demo
Before
After
![Page 28: Tutorial 5: Programming Graphics Hardware Advanced ...€¦ · Techniques Matthias M Wloka. Tutorial 5: Programming Graphics Hardware Nalu. ... Overview Geometry and dynamics Shading](https://reader034.vdocuments.mx/reader034/viewer/2022043006/5f8f028e266a5c3a836e6812/html5/thumbnails/28.jpg)
Tutorial 5: Programming Graphics Hardware
Questions
http://developer.nvidia.comThe Source for GPU Programming
Matthias Wloka ([email protected])