1 / 134

SIGGRAPH 2007 GPU Gems 3: Advanced Skin Rendering

SIGGRAPH 2007 GPU Gems 3: Advanced Skin Rendering. Eugene d’Eon. Outline. Demo: Human Head The Appearance of Skin An overview of the system Specular Surface Reflectance Scattering Theory Advanced Subsurface Scattering. Demo. The Appearance of Skin. Difficult to simulate:.

jameem
Download Presentation

SIGGRAPH 2007 GPU Gems 3: Advanced Skin Rendering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SIGGRAPH 2007 GPU Gems 3:Advanced Skin Rendering Eugene d’Eon

  2. Outline • Demo: Human Head • The Appearance of Skin • An overview of the system • Specular Surface Reflectance • Scattering Theory • Advanced Subsurface Scattering

  3. Demo

  4. The Appearance of Skin • Difficult to simulate:

  5. The Appearance of Skin • Difficult to simulate: • Detailed

  6. The Appearance of Skin • Difficult to simulate: • Detailed • Modern scanning

  7. The Appearance of Skin • Difficult to simulate: • Detailed • Modern scanning • Translucent

  8. The Appearance of Skin • Difficult to simulate: • Detailed • Modern scanning • Translucent • Subsurface scattering

  9. Two Component Reflectance Model • Most materials use two components

  10. Two Component Reflectance Model • Most materials use two components • Surface reflectance (specular)

  11. Two Component Reflectance Model • Most materials use two components • Surface reflectance (specular) • Subsurface reflectance (diffuse)

  12. Two Component Reflectance Model • Most materials use two components • Surface reflectance (specular) • Subsurface reflectance (diffuse) • Use Physically based models

  13. Two Component Reflectance Model • Most materials use two components • Surface reflectance (specular) • Subsurface reflectance (diffuse) • Use Physically based models • Specular BRDF

  14. Two Component Reflectance Model • Most materials use two components • Surface reflectance (specular) • Subsurface reflectance (diffuse) • Use Physically based models • Specular BRDF • Efficient subsurface scattering approximations

  15. Skin Surface Reflectance • Start with a physically based model for skin [DJ2006]

  16. Skin Surface Reflectance • Start with a physically based model for skin [DJ2006] • Consider top-most interaction

  17. Skin Surface Reflectance • Start with a physically based model for skin [DJ2006] • Consider top-most interaction • How much light reflects?

  18. Skin Surface Reflectance • Start with a physically based model for skin [DJ2006] • Consider top-most interaction • How much light reflects? • What direction(s)?

  19. Skin Surface Reflectance • Only ~6% of the incident light (on average) reflects directly [Tuchin 2000]

  20. Skin Surface Reflectance • Only ~6% of the incident light (on average) reflects directly [Tuchin 2000] • This is due to a Fresnel reflection • Not colored by the skin

  21. Skin Surface Reflectance • Only ~6% of the incident light (on average) reflects directly [Tuchin 2000] • This is due to a Fresnel reflection • Not colored by the skin • The topmost skin surface is rough • Single incoming direction: many outgoing directions

  22. Skin Surface Reflectance • Only ~6% of the incident light (on average) reflects directly [Tuchin 2000] • This is due to a Fresnel reflection • Not colored by the skin • The topmost skin surface is rough • Single incoming direction: many outgoing directions • Use a specular BRDF function

  23. Skin Surface Reflectance • Which BRDF should we use?

  24. Skin Surface Reflectance • Which BRDF should we use? • Phong and Blinn-Phong • Not physically based • We can do better

  25. Skin Surface Reflectance • Which BRDF should we use? • Phong and Blinn-Phong • Not physically based • We can do better • Turn to more physically based models

  26. Skin Subsurface Reflectance • What about the remaining 94%?

  27. Skin Subsurface Reflectance • What about the remaining 94%? • We need to compute subsurface scattering

  28. Skin Subsurface Reflectance • Subsurface scattering • Gives skin soft appearance and color

  29. Skin Subsurface Reflectance • Subsurface scattering • Gives skin soft appearance and color • Expensive to compute

  30. Skin Subsurface Reflectance • Subsurface scattering • Gives skin soft appearance and color • Expensive to compute • Essential for realistic appearance Subsurface scattering No Subsurface scattering *Scan data courtesy of XYZRGB Inc.

  31. Overview • Two component reflectance • Specular BRDF • Subsurface scattering approximation

  32. Overview • Two component reflectance • Specular BRDF • Subsurface scattering approximation • Specular • Kelemen Szirmay-Kalos 2001 BRDF • Schlick fast Fresnel • Weyrich et al. 2006 measured parameters

  33. Overview • Two component reflectance • Specular BRDF • Subsurface scattering approximation • Specular • Kelemen Szirmay-Kalos 2001 BRDF • Schlick fast Fresnel • Weyrich et al. 2006 measured parameters • Subsurface • Advanced texture-space diffusion • Stretch map correction • Multiple Gaussian blurs mixed

  34. Overview Diagram Start … blur blur blur Linear combination texture mapping Stretch maps Final pass: combine blurs + specular

  35. Specular Surface Reflectance • Use a physically based BRDF

  36. Specular Surface Reflectance • Use a physically based BRDF • Phong and Blinn-Phong can be improved upon

  37. Specular Surface Reflectance • Use a physically based BRDF • Phong and Blinn-Phong can be improved upon • Torrance-Sparrow has proven realistic • Too lengthy to compute exactly

  38. Specular Surface Reflectance • Use a physically based BRDF • Phong and Blinn-Phong can be improved upon • Torrance-Sparrow has proven realistic • Too lengthy to compute exactly • Kelemen Szirmay-Kalos 2001 • Faster than TS • Even faster with Schlick’s Fresnel term

  39. Phong vs. physically-based BRDF * Phong KS BRDF Phong KS BRDF *[Kelemen and Szirmay-Kalos 2001]

  40. Phong vs. physically-based BRDF • Increased specularity at grazing angles • Here we use Kelemen-Szirmay-Kalos 2001

  41. Rendering with a BRDF • BRDFs • Several analytic terms • Fresnel

  42. Rendering with a BRDF • BRDFs • Several analytic terms • Fresnel • Parameters • rho_s • Vectors N, V, L • Roughness (m) • Index of refraction (eta)

  43. Rendering with a BRDF • BRDFs • Several analytic terms • Fresnel • Parameters • rho_s • Vectors N, V, L • Roughness (m) • Index of refraction (eta) specularLight += lightColor[i] * lightShadow[i] * rho_s * specBRDF( N, V, L[i], eta, m) * saturate( dot( N, L[i] ) );

  44. Rendering with a BRDF • The dot( N, L ) is important • Only works for point/spot lights • Environment lights are expensive • Glossy reflections • See Kautz and McCool 2000 specularLight += lightColor[i] * lightShadow[i] * rho_s * specBRDF( N, V, L[i], eta, m ) * saturate( dot( N, L[i] ) );

  45. Fresnel Reflectance for Rendering Skin • All physically based BRDFs have a Fresnel term, F

  46. Fresnel Reflectance for Rendering Skin • All physically based BRDFs have a Fresnel term, F • Requires knowing index of refraction, eta • Look to skin research: use 1.4 [DJ2006]

  47. Fresnel Reflectance for Rendering Skin • All physically based BRDFs have a Fresnel term, F • Requires knowing index of refraction, eta • Look to skin research: use 1.4 [DJ2006] • Dielectric, unpolarized Fresnel reflectance

  48. Fresnel Reflectance for Rendering Skin • All physically based BRDFs have a Fresnel term, F • Requires knowing index of refraction, eta • Look to skin research: use 1.4 [DJ2006] • Dielectric, unpolarized Fresnel reflectance • Use Schlick’s fast Fresnel approximation: // H is the standard half-angle vector. F0 is reflectance at normal incidence (for skin use 0.028). float fresnelReflectance( float3 H, float3 V, float F0 ) { float base = 1.0 - dot( V, H ); float exponential = pow( base, 5.0 ); return exponential + F0 * ( 1.0 - exponential ); }

  49. Fresnel Reflectance for Rendering Skin Using textbook Fresnel Formula Using Schlick’s Fresnel

  50. Roughness parameter • How do we set roughness parameter m? *[Donner and Jensen 2005]

More Related