PBR物理材质

本人笔记,不喜勿喷

PBR在英文里面是 Physically Based Rendering 翻译成中文就是基于物理的渲染。
反射 散射 生成diffuse 漫反射
反射 生成Specular 镜面反射
进入物体生成透射

实现pbr渲染,抽象出来了相应的渲染方程
BSDF 双向散射表面分布函数,
这个由两部分组成,一部分是表面的函数 BSSRDF(双向散射表面反射分布函数)由BRDF(双向反射率分布函数)和SSS(次表面散射Subsurface scattering)组成。
另一部分是BSSTDF(双向散射表面透射率分布函数),由BTDF(双向透射率分布函数)和SSS(次表面散射Subsurface scattering)组成。
它们整体的组成了一个完整的渲染方程。

里面的重点是BRDF,简化计算,广泛应用于游戏领域。

基于微平面理论的BRDF
理论原理,在微观视角小的物体都是凹凸不平的,根据此角度进行相关推理而出。

迪士尼的PBS
基本原则:

  1. 艺术导向,并不一定物理正确
  2. 直观参数,而不是物理类参数,方便调试
  3. 参数尽可能少,范围应保持在0到1
  4. 所有参数组合尽可能健壮且合理,就是相互叠加或者去除某个效果不会产生错误效果

实现:
漫反射项:迪士尼的diffuse
镜面反射:microfacet Cook-Torrance BRDF
这个分出三项来解释:D项 (法线分布函数)镜面高光 F项 菲涅尔 G项 几何遮挡

模拟方程:

用的最多的是 Schlick ,他提出了一种近似得方法,利用已知的F0,就是默认的反射率,来求出菲涅尔反射率。

PBR物理材质

光照公式进一步优化:
(DiffuseColor / Pi + (D * Roughness) * (V * Roughness) * (F * SpecularColor)) * NdotL * LightColor

基于物理的环境光照
漫反射

  1. 立方体映射
  2. 球谐光照
  3. 蒙特卡洛积分

镜面反射
分解求和近似
LD 预过滤环境映射 就是环境反射球 mipmap
DFG 环境BRDF 使用2D LUT或者解析拟合 函数如下

间接光照公式:IndirectLighting = DiffuseColor / pi * SH + LD * DFG(SpecularColor)
直接光照公式: DirectLighting = (DiffuseColor / pi + D(Roughness,x) * V(Roughness,x) * F(SpecularColor,x) )* NdotL * LightColor

AO 环境光遮蔽
一般使用的两种:
一种是自身物体生成,可以通过软件烘焙出的,用于自身的,一般是AO贴图。
另一种是物体和物体之间生成的,可以通过屏幕空间技术得到,比如SSAO。
一般两者取最小的值进行混合。(个人感觉取中间值比较好)。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月21日
下一篇 2022年5月21日

相关推荐