Physical Based Rendering(PBR)

2025年1月6日 1174点热度 15人点赞 1条评论

PBRPhysical Based Rendering(基于物理的渲染)的简称,是一种基于物理规律模拟真实世界光照行为的渲染技术,它通过数学模型和物理原理来计算光照效果,以实现更加真实和自然的图像渲染,最早用于电影照片级的真实渲染中,近几年随着GPU性能的飞速提高,已经大量运用于PC游戏与主机游戏的实时渲染上。

PBR的由来

在PBR(Physically Based Rendering)的概念出现前,主流的光照模型是Blinn-Phong这类传统的光照模型,然而这种光照模型属于经验模型,若想渲染出一张高质量的图像,需要机械化的死记各种参数,反复调节光照来让材质表现效果看上去比较真实,并没有一个固定的标准,完全取决于美工的审美。

迪士尼白皮书《Physically Based Shading at Disney》

2012年,迪士尼发布PBR白皮书《Physically Based Shading at Disney》,为行业创造了一个共同的标准。Disney提供了一组标准化的材质参数,通过调整subsurface、metallic、specular、roughness、sheen等参数,来控制物体的材质效果。

%title插图%num

Disney的标准给行业提供了一个共同的框架,固化了美术制作的工作流程,让美术调节更加方便。然而,虽然固定了标准,但Disney PBR却不一定符合物理规则,发展到我们现在使用的PBR,模拟的就是真实世界中光线和材质之间的相互作用,呈现更加真实的效果。这里基于物理的渲染,依旧是对现实世界的近似,只是更加贴近我们的真实世界。

PBR光照

了解 PBR 首先要从为何我们能看到色彩缤纷的世界开始,现实生活中任何光都以电磁波形式在空间传播的一个或多个光子汇聚而成,光子打到物体上,进行反射、折射后击中我们的视网膜上的感光细胞后,经过一系列的物理化学变化,转换成神经冲动,由视神经传入大脑层的视觉中枢,然后我们就看见这些物体。成千上万的光子在运动过程中方向相似,但单个光子又因击中物体的角度不同而有差异,我们便能感受到这个物体的质感。

所以PBR的核心分为光照材质两个部分。首先我们讲PBR光照,PBR光照的工作原理主要基于以下理论:

  • 微平面理论
  • 能量守恒
  • BRDF

微平面理论

所有的PBR技术都是基于微表面的。这个理论是说任何表面都可以用无数微小的镜面来描述,表面的粗糙程度越高这些微小的镜面的朝向区别越大。对于一个物体表面来说更粗糙意味着微表面的朝向更无序,当我们讨论光线的高光反射时,这些镜子一样的微表面会将相同方向的入射光线朝着不同方向反射出去,形成一个更为宽广的镜面反射区域。而对于光滑表面来说,入射光线基本沿着同一方向反射出去,形成更清晰的反射画面。

%title插图%num

从微观角度来说,没有任何表面是完全光滑的。我们这里使用粗糙度这个统计近似数值,来衡量那些比一个像素的覆盖范围还小的微表面的粗糙程度。我们根据表面的粗糙度,可以计算得到单个微表面的半角向量(halfway vector)平行于平均半角向量的概率(半角向量是指位于入射光 l 与眼睛向量正中间的单位向量),越多的微表面半角向量相互平行,高光反射则越清晰和强烈。我们使用统计近似把微表面的各种对齐情况统一到0到1之间,形成一个粗糙度参数。粗糙度越高的物体高光部分就越大越模糊,而光滑表面的高光小且亮。

%title插图%num

能量守恒

微表面模型采用一种近似的能量守恒:反射出去的光的能量不应该超出入射光的总能量(发光体除外)。从上图中可以看出,随着粗糙度的增加高光范围的逐渐增大,亮度是在逐渐降低的,假如无论高光的范围多大亮度都一样,那么这个粗糙表面发射的能量就有些太多了,违反了能量守恒定律。这就是雨夜街道路面上看到的灯光反射要比干燥的路面上范围小且明亮的原因。

BRDF

Bidirectional Reflective Distribution Function(BRDF,双向反射分布函数),它的作用是基于表面材质属性来对入射辐射率进行缩放或者加权。BRDF可以近似的求出每束光线对一个给定了材质属性的平面上最终反射出来的光线所作出的贡献程度。

BRDF分为两部分,折射部分(漫反射)和反射部分(高光反射),常用的 BRDF 模型包括 Lambertian(用于漫反射)和 Cook-Torrance(用于镜面反射)。

%title插图%num

PBR材质

接下来,简单讲一下PBR材质,PBR 着色过程通常使用以下几种材质属性:

  1. Albedo(反照率):表示表面的基础颜色,不包含任何光照信息。
  2. Metallic(金属度):表示材质的金属性质。金属材质的金属度为1,非金属材质的金属度为0。金属材质通常会影响表面的反射特性和颜色。
  3. Roughness(粗糙度):描述表面的光滑程度。粗糙度为0表示完全光滑的表面,粗糙度为1表示完全粗糙的表面。粗糙度会影响高光的扩散程度。
  4. Normal(法线):用于表示表面的法线方向,影响光线的反射和折射。
  5. Ambient Occlusion(环境光遮蔽):表示表面的自阴影效果,用于模拟小范围内的光线遮蔽。
  6. Specular(镜面反射):用于非金属材质,表示镜面反射的颜色和强度。

%title插图%num

StackSnow

追风赶月莫停留,平芜尽处是春山。

文章评论

  • Avatar photo
    Good

    good!!

    2025年1月9日