游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3659|回复: 0

???????????

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2019-12-9 11:05:00 | 显示全部楼层 |阅读模式
?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????

image001.jpg
??????5???????

image003.jpg
??????5???????

?????4??

image005.jpg
? ?????4???????

image007.jpg
? ?????4???????

?????????

image009.jpg
? ??????????????

image011.jpg
? ??????????????

??????????????? UE4?Siren?

image013.jpg
? ???Siren????? @UE4

image015.jpg
? ???Siren????? @UE4

??????????

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????????????????????????????????????????????????????????????????????????????????????????94%????????????6%????

image017.jpg
? ??????

?????????????????????????????[Krishnaswamy and Baranoski 2004]???????????????????????????????????????????????epidermis?????????????[Poirer 2004]?????????????????????????????????????????????????????????????????????specular???Donner?Jensen[Donner and Jensen 2005]?2005??????????????????????????????????????

image018.jpg
? ??????

???????????????????????????????????????????????????????????????????????

???????BRDF(bidirectional reflectance distribution function)????????????????????????BSSDF?

1.jpg
? ????????????

???????????????????????

  • ?????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??

2.jpg
? ????????????

??????????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????????????????????

image021.jpg
?? BRDF?BSSRDF????????????

??BRDF???????????????????????????????????BSSRDF??????????????????????????????????????

image022.jpg


??BSSRDF?????

image023.jpg


????????????????????????????????????????????BSSRDF??????????????????????????????????????????????????????????????????????????????????????BSSRDF?????????????????????????????????????????????????????????????:

1. ??????????????????

2. ??????????????

3. ?????????????

4. ????????????????

???????????????????????????????????????????????????????????????????????????????BSSRDF????????????

?????????????????

image024.jpg


???   ????

image025.jpg


??   ???????????????

3.2.3 BTDF????Transmittance?

????????????????????????????????????????????????????????????????????Transmittance????????????????????

image026.jpg
? ???Transmittance????

image027.jpg
? ???????????????

????????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?

image028.jpg

? 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????

image029.jpg

? 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)???

image030.jpg

? ????????diffusion profile?


?????????RGB?????????????????????????????????????????????????????????????????????????????

??????2001??Jensen ?????????[Jensen et al.2001]????????????????????????????????????dipole??????????????

????????????????????r???????????????????????????????????????????????????

image031.jpg

? ?r?????????diffusion??????


???????????????dipole????????????????dipole?????????????????????????????????Dipole Profiles?????????dipole??????????diffusion profile??

image032.jpg

? ?????????????????????[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??

image034.jpg

? ?????????????????????????????[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??

3.jpg

? ????????diffusion profile?


???????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????????????

????????R(r)?????????w i???v i?k??????

image036.jpg


??????????v???????

image037.jpg


????1/?2v???G?v?r??????2D??????????????????????????unit impulse response???

??????????diffusion profile???????????????????????????????

????[Jensen et al. 2001]?????????

image038.jpg


image039.jpg



? ??????????????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?????????????

image040.jpg

? Matlab???????



image042.jpg

? Matlab???????



image043.jpg

? ??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????????????????????????????????????????


image044.jpg

? ????????????



image045.jpg

? ???????????????


????????????????????????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?????????????

image046.jpg

? ?????????????????????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????????????????????????????????????????????

image047.jpg

? ?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?


image048.jpg

? ?????????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))?????

image049.jpg

? ???????Screen Space Blur?????



image051.jpg

? ???????Screen Space Blur??????



image053.jpg

? ???????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)????????????????????????????????????


image054.jpg

? ?GPU Gems 3?????Translucent Shadow Maps????



image055.jpg

? ??????????


???ShaderX7??Real-Time Subsurface Scattering using Shadow Maps??????????????Shadow Maps???????????????


image056.jpg

? 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)???????????????????????????


image058.jpg

? ?????????Pre-Integrated Skin Shading????


??????????????????????|??????????????NL??????BRDF???The diffuse BRDF lookup?|?????????BRDF????r??????????????

???????????????????????Texture-Space Diffusion????????????????????????????????????

image060.jpg

? ???????????????Texture-Space Diffusion???


???????15?????????????????????????????????????

image062.jpg

? ?? 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?????????


image064.jpg

? ??????Separable Convolution?



image065.jpg

? ??SSSS????? @GDC 2013 by Activision-Blizzard



image067.jpg

? ??SSSS????? @GDC 2013 by Activision-Blizzard



image069.jpg

??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?????

image071.jpg

? 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:

image073.jpg

? 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


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-17 20:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表