PBR渲染与渲染方程 (juejin.cn) www.jordanstevenstechart.com/physically-…
实时渲染(real-time rendering)(RTR)
BRDF
- BRDF(Bidirectional Reflectance Distribution Function)表示的是出射光线的辐射radiance与入射光线的辐照度irradiance之间的比值
BRDF模型
- 这几年BRDF发展的趋势就是physically-based,而且都用同样的框架,Cook-Torrance microfacet
- F是fresnel项,基本都被统一成schlick的近似\
- (还可以进一步用spherical gaussian近似,我就不列公式了)
- 之前的各个所谓BRDF,都可以表达成这个框架下的D或G的组合。
- Blinn-Phong,简单快速,各向同性,表达能力有限
- Cook-Torrance,复杂一些,各向同性,可以较好地表达真实材质
- Ward,复杂一些,支持各向异性
- GGX有各向异性版,各项同性版
- Blinn-Phong,简单快速,各向同性,表达能力有限
常用公式
- UE4选择的都是高效的模型,而Disney选择的都是复杂而准确的模型。
漫反射BRDF模型(Diffuse BRDF)
镜面反射BRDF模型(Specular BRDF)最主要的部分
- Microfacet Cook-Torrance BRDF(局部光学平坦表面,没有相互反射)
- 仅对几何光学系统中的单层微表面上的单个散射进行建模,没有考虑多次散射,分层材质,以及衍射。
- 这个反射方程只与light和view有关
- D(h) : 法线分布函数 (Normal Distribution Function)
- 描述微面元法线分布的概率,即正确朝向的法线的浓度。即具有正确朝向,能够将来自l的光反射到v的表面点的相对于表面面积的浓度。
- F(l,h) : 菲涅尔方程(Fresnel Equation),
- 描述不同的表面角下表面所反射的光线所占的比率。
- WebGL PBR F0 与 菲涅尔 (juejin.cn)
- G(l,v,h) : 几何函数(Geometry Function),
- 描述微平面自成阴影的属性,即m = h的未被遮蔽的表面点的百分比。
- 4(n·l)(n·v):校正因子(correctionfactor),
- 作为微观几何的局部空间和整个宏观表面的局部空间之间变换的微平面量的校正。
函数部分原理与解析1
- l和v之间的矢量称为半矢量(half-vector)或半角矢量(half-angle vector); 我们将其表示为h。
- 仅m = h的表面点的朝向才会将光线l反射到视线v的方向,其他表面点对BRDF没有贡献。
- 并非所有m = h的表面点都会积极地对反射做出贡献;一些被l方向(阴影shadowing),v方向(掩蔽masking)或两者的其他表面区域阻挡。
函数部分原理与解析2
Specular D
- 历史
- Beckmann[1963]
- Blinn-Phong[1977]
- GGX [2007] / Trowbridge-Reitz[1975]
- Generalized-Trowbridge-Reitz(GTR) [2012]
- Anisotropic Beckmann[2012]
- Anisotropic GGX [2015]
- GGX(Trowbridge-Reitz)
- GGX 与 Beckmann
- 看高光边缘拖尾
- 弄个球和点光源就看出来了
Specular F
- 历史
- Cook-Torrance [1982]
- Schlick [1994]
- Gotanta [2014]
- Schlick
- 因为计算成本低廉,而且精度足够
- 因为计算成本低廉,而且精度足够
Specular G
- 历史
- Smith [1967]
- Cook-Torrance [1982]
- Neumann [1999]
- Kelemen [2001]
- Implicit [2013]
- 分离遮蔽阴影型(Separable Masking and Shadowing)
- 高度相关掩蔽阴影型(Height-Correlated Masking and Shadowing)
- 方向相关掩蔽阴影型(Direction-Correlated Masking and Shadowing)
- 高度-方向相关掩蔽阴影型(Height-Direction-Correlated Masking and Shadowing)
- Smith-GGX
- Smith-Beckmann
- Smith-Schlick
- Schlick-Beckmann
- Schlick-GGX
- 匹配GGX Smith方程