?GPU Gems 3???Chapter 14. Advanced Techniques for Realistic Real-Time Skin Rendering??????????????????????????????????????????????????
????????????GPU Gems 3???????????????????????????????????????
????GPU Gems 3???????????????????????????????????????????????????????????????????????????????????????????
??????????????
???????20?????????????????????
- ??????????Subsurface Light Transport, SSLT?[2001]
- ?????Diffusion Profile? [2001]
- ????dipole? [2001]
- ???????Texture Space Blur?[2003]
- ????multipole? [2005]
- ???????Screen Space Blur????????????SSSSS,Screen Space SubSurface Scattering?[2009]
- ??????????Path-Traced Subsurface Scattering???????Ray Marching?[2009]
- ?????????Pre-Integrated Skin Shading?[2010]
- ??????????SSSS,Separable Subsurface Scattering?[2015]
- ?
???????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????20???????????????????????
??????????????????????
??????????5?????????????????????????????????????????????????????????
OK??????????????????????????
??????5????
??????5???????
??????5???????
?????4??
? ?????4???????
? ?????4???????
?????????
? ??????????????
? ??????????????
??????????????? UE4?Siren?
? ???Siren????? @UE4
? ???Siren????? @UE4
??????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????94%????????????6%????
? ??????
?????????????????????????????[Krishnaswamy and Baranoski 2004]???????????????????????????????????????????????epidermis?????????????[Poirer 2004]?????????????????????????????????????????????????????????????????????specular???Donner?Jensen[Donner and Jensen 2005]?2005??????????????????????????????????????
? ??????
???????????????????????????????????????????????????????????????????????
???????BRDF(bidirectional reflectance distribution function)????????????????????????BSSDF?
? ????????????
???????????????????????
- ?????specular reflection?
- ??????subsurface scattering?
?????????????????
3.1 ?????specular reflection?
??????specular reflection?????????Gems 3???Kelemen and Szirmay-Kalos specular BRDF???????????????Kelemen and Szirmay-Kalos specular BRDF????Torrance-Sparrow?????????????????????????????????????????????????????
3.2 ??????Subsurface Scattering?
3.2.1 ????????????Translucent and Subsurface Scattering?
???????????????????????????????????????????????????????????????????????(Subsurface Light Transport,SSLT)??[Pharr 2010]????????
???????????????????????????????????????????6%?????????????????????????????????????94%??????????????????????????????????????????????????????????????????????
????????????????????????????????????????????3D??????????????????????????????????Transmittance??
? ????????????
??????????Jensen?2001?????A Practical Model for Subsurface Light Transport??????????????????????????????????????????????????????????????????????????????????????????????
3.2.2 BRDF?BSSRDF
????????????????Volumetric Path Tracing?Volumetric Photon Mapping?BSSRDF?
???BSSRDF?Bidirectional Surface Scattering Reflectance Distribution Function???????????????????????
???????? BRDF ??? BSSRDF??????BSSRDF?BRDF????????BSSRDF????????????????????
?? BRDF?BSSRDF????????????
??BRDF???????????????????????????????????BSSRDF??????????????????????????????????????
??BSSRDF?????
????????????????????????????????????????????BSSRDF??????????????????????????????????????????????????????????????????????????????????????BSSRDF?????????????????????????????????????????????????????????????:
1. ??????????????????
2. ??????????????
3. ?????????????
4. ????????????????
???????????????????????????????????????????????????????????????????????????????BSSRDF????????????
?????????????????
??? ????
?? ???????????????
3.2.3 BTDF????Transmittance?
????????????????????????????????????????????????????????????????????Transmittance????????????????????
? ???Transmittance????
? ???????????????
????????BTDF?????????? Bidirectional Transmittance Distribution Function?????
??????????????????
- BRDF??????????Bidirectional Reflectance Distribution Function?
- BSSRDF?????????????, Bidirectional Surface Scattering Reflectance Distribution Function?
- BTDF?????????? Bidirectional Transmittance Distribution Function?
- BSDF??????????Bidirectional Scattering Distribution Function?
???????????????https://zhuanlan.zhihu.com/p/27014447???BRDF?BTDF?BSDF????????????????????
????????????????????????????????????
- ????????????????? ???????????
- ?????????????????
???
- BRDF??????????????radiance????????????irradiance?????????????????????????????????????????BRDF??
- BTDF??????????????????????????????????????????BTDF??
- BSDF?????????????????????????????????????????BSDF???BSDF = BRDF + BTDF?
? BSDF = BRDF + BTDF
???????????????????
?1?????????????????
?2????????????????
?3????????BTDF?????????????BTDF????????????????????
????GPU Gems 3??????????????????Translucent Shadow Maps?TSMs?????????????????????????????????
3.2.4 ??BRDF?BSSRDF?BTDF?BSDF???
????????PPT???????BRDF?BSSRDF?BTDF?BSDF????
? BRDF?BSSRDF?BTDF?BSDF???
??????????????????
????????????????????????????????????????
- ?????????BRDF??
- ?????????? BSSRDF??
- ???????BTDF??
??????
- ?????BRDF ? BSSRDF ?????
- BSDF???????????????BSDF = BRDF + BTDF
???????Diffusion Profile?
?????Diffusion Profile??????????????????????
???????????Diffusion Profiles????????????Diffusion Profiles???????????????????????????????Diffusion Profiles???????????????????????????????????????????????????????????Diffusion Profiles??????????????Diffusion ??Diffuse Scattering???????????????????????????
??????????diffusion profile??????????????????????????
?????diffusion profile??????????????????????????????LUT??????????????????????????????????????????????????
???????????????????????????????????????????????????
?????????????diffusion profile???????????????Dipole????????Multipole????????Sum-of-Gaussians?????????????????Diffusion Profiles???????
?????????????????????????????????????????????????????????????????????????????????????RGB????????????????????diffusion profile????????????????(??)???
??????????diffusion profile??????????????????????????????????????????????
????????????????????????????????????????????????????????????????????(a)???
?????diffusion profile?????????????????????????? ??????????????????????????????????????
??????????????????????????????(b)???
? ????????diffusion profile?
?????????RGB?????????????????????????????????????????????????????????????????????????????
??????2001??Jensen ?????????[Jensen et al.2001]????????????????????????????????????dipole??????????????
????????????????????r???????????????????????????????????????????????????
? ?r?????????diffusion??????
???????????????dipole????????????????dipole?????????????????????????????????Dipole Profiles?????????dipole??????????diffusion profile??
? ?????????????????????[Jensen 2001]
??????????R(r)???????????????????????????????????R(r)??????????????
?1???????????????????????r=0??????????????????????????????????????????????????????
?2?????????????????????????????????????????????????????
???????????????????
?1?????????????????
?2????????diffusion profile???1??????????????????????????????????
4.1 ????Multipole???
???????????diffusion profile??????????????Dipole??????Multipole??????Sum-of-Gaussians???????????????Diffusion Profiles???????
2005??Donner and Jensen?????Light Diffusion in Multi-Layered Translucent Materials?[Donner and Jensen 2005]?????multipole????????diffusion profiles?????????????????????????
??????????????????????????????2\^n????????????????????????????n=0????????n=1???????Dipole??n=2???????n?2????????Multipole??
? ?????????????????????????????[Donner 2005]
????????????diffusion profile????????????Light Diffusion in Multi-Layered Translucent Materials??http://jbit.net/~sparky/layered.pdf
4.2 ?????????Sum-of-Gaussians Diffusion Profile?
????????????????????????????e^-r2????????????????????????????????????????????????????????????????????????????diffusion profile??
? ????????diffusion profile?
???????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????
????????R(r)?????????w i???v i?k??????
??????????v???????
????1/?2v???G?v?r??????2D??????????????????????????unit impulse response???
??????????diffusion profile???????????????????????????????
????[Jensen et al. 2001]?????????
? ??????????????Dipole Profile?
???????2???????Profile???????4??????????????Profile???????????
?????????????????????
???????????????????????????????????
??????????????????????????????????????????????http://gad.qq.com/article/detail/33372????Matlab??????????????????,??https://cn.mathworks.com/help/curvefit/gaussian.html
Matlab??????????????8???????1????2??3??2?????????????
? Matlab???????
? Matlab???????
? ??2????????????
4.3 ??????????????A Sum-of-Gaussians Fit for Skin?
???????????????Sum-of-Gaussians Diffusion Profile???????????????????????????????????
????????????????????????Dipole Profile??????????????????????????????Dipole Profile????????????????????????Dipole???????3?????Dipole?????????????????3?????Dipole???????Jensen?????????????Profile???
?3???????Dipole Profile?????????????????4????????????????????????6????????????????
????????????Matlab?????????????6???????3?Dipole Profile?RGB????????????????????????????????????????
? ????????????
? ???????????????
????????????????????????1.0??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????
??????????diffusion profile??????????????????????????
???????diffusion profile????????????????????????????????????????????????????????
?????????????????diffusion profile????????????????????????????????????
- ???????Texture Space Blur?
- ???????Screen Space Blur?
???????????
5.1 ???????Texture Space Blur?
????????Texture-Space Diffusion???????Texture Space Blur????????????[Borshukov and Lewis 2003]???????????????????????????????????????subsurface scattering??
??????????????????????????????????????3D????2D?????????????
? ?????????????????????Texture Space Blur???????
GDC 2007?????NVIDIA?talk Advanced Skin Rendering?http://developer.download.nvidia ... /Advanced_Skin.pdf.??????Texture Space Blur?????Gems 3????????
??????????6???????????????????Dipole???????????????????Texture Space Blur????????????????????????????????????????????6????????????????????????????????????????????
? ?GPU Gems 3????????????Texture Space Blur?????
???????Texture Space Blur???Combining blurs?????shader?????
float3 diffuseLight= nonBlur* E1 * pow( diffuseCol, 0.5 );
float3 blur2tap = f3tex2D( blur2Tex, v2f.c_texCoord.xy );
float3 blur4tap = f3tex2D( blur4Tex, v2f.c_texCoord.xy );
float3 blur8tap = f3tex2D( blur8Tex, v2f.c_texCoord.xy );
float3 blur16tap = f3tex2D( blur16Tex, v2f.c_texCoord.xy );
float3 blur32tap = f3tex2D( blur32Tex, v2f.c_texCoord.xy );
diffuseLight+= blur2 * blur2tap.xyz;
diffuseLight+= blur4 * blur4tap.xyz;
diffuseLight+= blur8 * blur8tap.xyz;
diffuseLight+= blur16 * blur16tap.xyz;
diffuseLight+= blur32 * blur32tap.xyz;
// renormalize weights so they sum to 1.0
float3 norm2 = nonBlur+ blur2 + blur4 + blur8 + blur16 + blur32;
diffuseLight/= norm2;
diffuseLight*= pow( diffuseCol, 0.5 );
5.2 ???????Screen Space Blur?[2009]
???????Screen Space Blur? [Jimenez et al.2009]???????????????Screen Space SubSurfaceScattering??SSSSS?
? ?????????Screen Space Blur?????
????????Texture Space Blur?????????????Screen Space Blur?[Jimenez et al.2009]??????Stencil????Skin??????????Blur??????????????????
??????????Stencil??????????????????????????????Diffusion Profile????????????????????????d(x,y)??????dFdx(d(x,y))?dFdy(d(x,y))?????
? ???????Screen Space Blur?????
? ???????Screen Space Blur??????
? ???????Screen Space Blur?
?????????????????????????????????????????????????????????????????????????????????????Diffusion Profile?????????????????
??????????
6.1 ????????Translucent Shadow Maps?TSMs?
?GPU Gems 3???????????????Translucent Shadow Maps?TSMs?????????????????
???????????Texture-Space Diffusion??????????????????????????????????????????????????????GPU Gems 3????????????Translucent Shadow Maps?TSMs?(Dachsbacher and Stamminger 2004)????????????????????????????????????
? ?GPU Gems 3?????Translucent Shadow Maps????
? ??????????
???ShaderX7??Real-Time Subsurface Scattering using Shadow Maps??????????????Shadow Maps???????????????
? Rendering AAA-QualityCharacters of Project A1 @ NDC 2016 Programming Session
6.2 ?????????Pre-Integrated Skin Rendering?
?????????Pre-Integrated Skin Shading???GPU Pro 2?? Pre-Integrated Skin Shading?????????????
?????????Pre-Integrated Skin Shading?????????????????????????????????????????????????????dot(N,L)???????????????????????????
? ?????????Pre-Integrated Skin Shading????
??????????????????????|??????????????NL??????BRDF???The diffuse BRDF lookup?|?????????BRDF????r??????????????
???????????????????????Texture-Space Diffusion????????????????????????????????????
? ???????????????Texture-Space Diffusion???
???????15?????????????????????????????????????
? ?? Pre-Integrated Skin Shading??????15???????????????????????????
???????????Pre-Integrated Skin Rendering??????????GPU Pro 2??? Pre-Integrated Skin Shading???
6.3 SSSS,??????????Separable Subsurface Scattering?
??????Subsurface Scattering????SSS,?3S????????????Separable Subsurface Scattering??????SSSS?4S, Separable Subsurface Scattering??Jimenez???2015??????????[Jimenez J 2015]?
??????????????Screen Space Blur???????????Texture Space Blur???????6???????12?pass(?????????????????)?
???Jorge????GDC 2013,?talkNext-Generation Character Rendering?http://www.iryoku.com/images/pos ... ndering-Teaser.pptx???????SSSS???????2015??????????SSSS(?????????,Separable Subsurface Scattering)(http://iryoku.com/separable-sss)??????????2?Pass????????????????????????????Unreal?????????
? ??????Separable Convolution?
? ??SSSS????? @GDC 2013 by Activision-Blizzard
? ??SSSS????? @GDC 2013 by Activision-Blizzard
??Separable Subsurface Scattering?????SSSS??? @ COMPUTER GRAPHICS forum 2015 by Jorge Jimenez @ Activision-Blizzard
6.4 ??????????Path-Traced Subsurface Scattering???????Ray Marching?
??????????Path-Traced Subsurface Scattering?????????????????Monte-Carlo Subsurface Scattering??????????????????????????????????????Ray Marching??????
?SIGGRAPH 2017 Course: Physically Based Shading in Theory and Practice????Volumetric Skin and Fabric Shading at Framestore?http://blog.selfshadow.com/publi ... olumetric_notes.pdf????????????????Course??????????????????????
???NDC 2016 Programming Session??Rendering AAA-QualityCharacters of ProjectA1?????????PPT?????
? Rendering AAA-QualityCharacters of Project A1 @ NDC 2016 Programming Session
????????????
https://www.cs.rpi.edu/~cutler/c ... _projects/white.pdf
6.5 Deferred Single Scattering
??????????????????????PPT:
? Rendering AAA-QualityCharacters of Project A1 @ NDC 2016 Programming Session
????????
?????????????????????????????
1. ??????
???????????????
- ?????specular reflection?
- ??????subsurface scattering?
?????????????????????
2. ??????
?????specular reflection???????????
- Torrance-Sparrow
- Kelemen and Szirmay-Kalos specular BRDF
- ??????????
???Kelemen and Szirmay-Kalos specular BRDF????Torrance-Sparrow???????????????????
3. ???????
3.1 ?????Diffusion Profile?
?????diffusion profile??????????????????????????
????????????????
- ????Dipole???
- ????Multipole???
- ????Sum-of-Gaussians???
???????????????Diffusion Profiles??????????????diffusion profile?????????????????????????????????????????????????????????????????????????diffusion profile?????????????????
?????????????????
- ???????Texture Space Blur?
- ???????Screen Space Blur??????????????Screen Space SubSurfaceScattering??SSSSS?
3.2 ????????
- ????????Translucent Shadow Maps?TSMs?
- ?????????Pre-Integrated Skin Rendering?
- ??????????SSSS , Separable Subsurface Scattering?
- ??????????Path-Traced Subsurface Scattering???????Ray Marching?
- Deferred Single Scattering
4. ?????????
- ??????????Subsurface Light Transport, SSLT?[2001]
- ?????Diffusion Profile? [2001]
- ????dipole? [2001]
- ???????Texture Space Blur?[2003]
- ????multipole? [2005]
- ???????Screen Space Blur????????????SSSSS,Screen Space SubSurface Scattering?[2009]
- ??????????Path-Traced Subsurface Scattering???????Ray Marching?[2009]
- ?????????Pre-Integrated Skin Shading?[2010]
- ??????????SSSS,Separable Subsurface Scattering?[2015]
- ?
?????GitHub?
????????GitHub????????????
???MarkDown????????????????????????????????GitHub??????????????????????????????????Git?????????????????????,???????????????GitHub?Repo????
????GitHub???????
QianMo/Game-Programmer-Study-Notesgithub.com
??????
[1] Eugene d'Eon, David Luebke. GPU Gems 3, Chapter 14. Advanced Techniques for Realistic Real-Time Skin Rendering,2007.(https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch14.html)
[2] Volumetric Skin and Fabric Shading at Framestore , SIGGRAPH 2017 Course: Physically Based Shading in Theory and Practice?http://blog.selfshadow.com/publi ... olumetric_notes.pdf?
[3] Rendering AAA-QualityCharacters of Project A1, NDC 2016 Programming Session
[4] https://zhuanlan.zhihu.com/p/27014447
[5] http://gad.qq.com/article/detail/33372
[6] http://gad.qq.com/article/detail/33373
[7] http://www.iryoku.com/next-generation-life
[8] https://gamingbolt.com/final-fan ... e-pre-rendered-ones
[9] Next-Generation-Character-Rendering ?GDC 2013 http://www.iryoku.com/images/pos ... ndering-Teaser.pptx
[10] https://en.wikipedia.org/wiki/Bi ... stribution_function
[11] Jensen, Henrik Wann, Stephen R. Marschner, Marc Levoy, and Pat Hanrahan.2001. "A Practical Model for Subsurface Light Transport." In Proceedings of SIGGRAPH 2001.
[12] Matlab online doc https://cn.mathworks.com/help/curvefit/gaussian.html
[13]d'Eon, Eugene."NVIDIA Demo Team SecretsAdvanced Skin Rendering." Presentation at Game Developer Conference 2007. http://developer.download.nvidia ... /Advanced_Skin.pdf.
[14] Jorge Jimenez, Kroly Zsolnai, etc. Separable Subsurface Scattering(http://iryoku.com/separable-sss/)
[15] Faceworks https://github.com/NVIDIAGameWorks/FaceWorks
[16] Colin Barre-Brisebois,Marc Bouchard. 2011. Presentation at Game Developer Conference 2011. https://colinbarrebrisebois.com/ ... ce-scattering-look/
[17] Jorge Jimenez, David Whelan, etc. Real-Time Realistic Skin Translucency(http://iryoku.com/translucency/d ... in-Translucency.pdf)
[18] orge Jimenez. Next Gen Character Rendering GDC 2013.
[19] Koki Nagano?Graham Fyffe?Oleg Alexander etc."Skin Microstructure Deformation with Displacement Map Convolution"http://gl.ict.usc.edu/Research/SkinStretch/
[20] RenderDoc. https://github.com/baldurk/renderdoc
[21] Per H. Christensen, Brent Burley. "Approximate Reflectance Profiles for Efficient Subsurface Scattering" Presentation at SIGGRAPH 2015. https://graphics.pixar.com/library/ApproxBSSRDF/paper.pdf
[22] Per H. Christensen, Brent Burley. "Approximate Reflectance Profiles for Efficient Subsurface Scattering" Presentation at SIGGRAPH 2015. https://graphics.pixar.com/library/ApproxBSSRDF/paper.pdf
??????
?????https://zhuanlan.zhihu.com/p/42433792
|