PBR是什么

在PBR(Physically Based Rendering)的概念出现前,若想渲染出一张高质量的图,需要机械化的死记各种参数,反复调节光照来让材质表现效果看上去比较真实。然而由于传统渲染器这种“真实”是基于烘焙贴图来实现的,因此环境光、物体位置必须保持不变。人们当然不满足于一张定格的画面,尤其是在游戏引擎中,因此催生了 Physically Based Rendering 这种渲染方法,PBR问世后拯救了千千万的CG工作者,从此只需分析物体自身物理属性即可,无论物体位置、光照如何改变,你只要给模型正确的参数设定,它必然不会出错。目前很多三维软件已采用了PBR,如Blender、C4D、Houdini 、Unreal 等,它是实时渲染的基础,所以今后三维软件的发展趋势绝对离不开PBR。

基于物理的渲染(PBR)是指使用逼真的阴影/光照模型以及测量的表面值来准确表示真实世界的材料的概念。 PBR更多的是一个概念,而不是一套严格的规则,因此,PBR系统的确切实现往往会有所不同。

PBR工作原理

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

之所以叫做基于物理的渲染而不是物理的渲染,是因为渲染过程基于物理理论,尽管物理理论很接近现实,但毕竟不是现实。PBR工作原理基于以下理论:

- 微表面模型 -

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

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

- 能量守恒定律 -

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

- 双向散射分布函数 -

我们为了让计算机模拟光从物体表面各个位置反射到我们眼中而产生亮度变化,构建了一个光照模型——双向散射分布函数(Bidirectional scattering distribution function,BSDF),可以分为反射和透射分量 - BRDF(双向反射分布函数)和BTDF(双向透射分布函数)。从本质上讲,它是一种数学函数,用于确定特定光线在给定角度下被反射(散射)的概率。每次光线反射时,BSDF都会确定光线反射的方向。

哪些三维软件使用了PBR

- 主体三维软件 -

Cycles Render Engine 是国际开源软件blender中的照片级渲染引擎,采用的是Pach-Tracer 无偏路径追踪算法,支持CPU与GPU混合加速后渲染提速200%,Blender向人们证明了它的价值,也吸引了越来越多开发人员的加入。目前C4D平台也可Cycles渲染引擎。

Eevee Render Engine 是国际开源软件blender中的一种渲染引擎。强大的全新引擎Eevee完全可与Unreal媲美,材质节点编辑系统可与Cycles 完美互通。

Houdini (电影特效魔术师) 由加拿大 Side Effects Software 公司开发。是创建高级视觉效果的有效工具,完全基于节点模式设计,并且具有横跨整个产品线的能力。成功应用于电影的特效服务不计其数,可以说它完全是为电影而生。 

- 协助三维软件 -

Clarisse IFX for mac是Isotropix公司出品的一款2D/3D动画制作软件,这款软件可以帮助艺术家们开发复杂又重细节的生产场景,但又能与最终图像进行实时互动。Clarisse IFX 结合了合成软件、3D渲染引擎以及动画组件。它的工作流的设计核心是“以图像为核心”,所以制作人员们可以在视觉化最终全效图像的同时持续工作。

Substance Painter打破原有贴图绘制流程,内置大量的画笔与材质,用户可以设计出符合要求的图形纹理模型,软件具有智能选材功能,材质纹理细节丰富,短短几年已打入游戏、影视领域,而后推出的Substance Designer、Substance Alchemist更是不断刷新人们对纹理绘制软件的认识,创作原来可以如此简单 。

Twinmotion 是一款专为建筑可视化服务的软件,操作便捷,渲染高清图片、视频不在话下,还能轻松实现 VR交互,可谓是“看房新体验”。内置一系列极其逼真的PBR(物理渲染)材质,该材质会适应夜晚和日间的光照,做出真实的物理反应。同时,您可以设置材质的颜色、反射率、尺寸等等。

Unreal Engine 由 Epic 开发,是目前世界知名授权最广的游戏引擎之一,拥有即时光迹追踪、HDR光照技术、虚拟位移…等新技术,而且能够每秒钟实时运算两亿个多边形运算,而通过 nVIDIA 的 GeForce 6800显示卡与“Unreal Engine 3”3D引擎的搭配,可以实时运算出电影CG等级的画面,效能非常惊人。

Unity3D 是由 Unity Technologies 开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互 动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity 类似于 Director,Blender Game Engine, Virtools 或 Torque Game Builder 等利用交互的图型化开发环境为首要方式的软件。

- 第三方插件 -

Arnold 渲染器是由Solid Angle SL 开发的跨平台渲染 API,很多好莱坞电影公司以及工作室将它作为首席渲染器使用。 Arnold 的设计构架能很容易地融入现有的制作流程。它建立在可插接的节点系统之上,用户可以通过编写新的 shader、摄像机、滤镜、输出节点、程序化模型、光线类型以及用户定义的的几何数据来扩展和定制系统。目前Arnold 渲染器有独立版,也可作为插件在Houdini、Maya、C4D、3dmax、Softimage中使用。