威尼斯wns·8885556(vns认证网站)-BinG百科

当前位置:首页 > 新闻资讯 > 技术动向

PBR渲染在FreeXRender中的应用实例

发布者:威尼斯wns·8885556    时间:2020-11-23 16:10:09

基于物理的渲染(PBR)技术现在被广泛应用在高质量的实时渲染中,在图形学最重要的分支就是真实感渲染,而PBR则是真实感实时渲染的基础。

在实时渲染领域没有PBR制作流程之前是怎么做的?在没有标准统一的PBR Shading方法之前,每种材质都有一套自己的BRDF实现,Shading各走各的,于是早期Forward流程里会大量出现Uber Shader,Defered流程中会大量运用GLSL subroutine或HLSL Dynamic Link等Feature,来实现Shading切换。

本文将为大家介绍一种传统光照着色方式与PBR着色的区别及在场景渲染中的应用:


01

传统光照-Phong Lighting Model着色


计算光照最常用的模型就是大名鼎鼎的Phong模型,该模型其实是经验模型,参数信息都是经验得到的,并没有实际的物理意义,所以利用Phong模型会出现违背物理规则的时候。Phong模型将物体光照分为3个部分进行计算:环境光(Ambient)、漫反射光(Diffuse)和镜面光(Specular)。

图片1.png

图片2.png

  * 颜色相乘是的结果的意义是正片叠加,以一个颜色为玻璃,拿另一个颜色照其上;

① 环境光:环境光是指全局的无处不在的光源;

图片3.png     图片4.png

  * 环境光和入射向量、观察方向、物体表面法向量都没有关系;

② 漫反射光:模拟光源位置对光照的影响,比如正常的电灯、手电等;


图片5.png



图片6.png


图片7.png


图片8.png

  * 漫反射光和物体表面法向量以及灯的入射向量有关,与观察向量无关;

③ 镜面光:模拟光滑物体反射的高光效果。

图片9.png

图片10.png

  * 镜面光与法向量、入射向量、观察向量都有关系。


02

基于物理的渲染-PBR着色


PBR是基于真实世界光照物理模型的渲染技术合集,是一套完整的符合物理计算的系统,它使用了一种更符合物理学规律的方式来模拟光线,且可调试内容非常直观,以此来达到更真实的渲染效果。

满足以下条件的光照模型才能称之为PBR光照模型:

l  基于微平面(Microfacet)的表面模型;

l  能量守恒;

l  应用基于物理的BRDF。

(1)微平面理论

大多数PBR技术都是基于微平面理论。在此理论下,认为在微观上所有材质表面都是由很多朝向不一的微小平面组成,有的材质表面光滑一些,有的粗糙一些。

图片11.png

* 任何平面放大的足够大都是由无数个小平面构成的,其小无内;

当光线射入这些微平面后,通常会产生镜面反射。对于越粗糙的表面,由于其朝向更无序,反射的光线更杂乱,反之,平滑的微平面,反射的光线更平齐。

从微观角度来说,没有任何表面是完全光滑的。由于这些微平面已经微小到无法逐像素地继续对其进行细分,因此我们只有假设一个粗糙度(Roughness)参数,然后用统计学的方法来概略的估算微平面的粗糙程度。

我们可以基于一个平面的粗糙度来计算出某个向量的方向与微平面平均取向方向一致的概率。这个向量便是位于光线向量l和视线向量v之间的中间向量,被称为半角向量(Halfway Vector)。

图片12.png

* 半角向量h是视线v和入射光l的中间单位向量;

半角向量计算公式如下:

图片13.png

越多的微平面取向与其半角向量一致,材质镜面反射越强越锐利。加上引入取值0~1的粗糙度,可以大致模拟微平面的整体取向。

图片14.png

   * 粗糙度从0.1~1.0的变化图。粗糙度越小,镜面反射越亮范围越小;粗糙度越大,镜面反射越弱。

(2)能量守恒

在微平面理论中,采用近似的能量守恒:出射光的总能量不超过入射光的总能量(发光体除外)。那么PBR是如何实现近似的能量守恒呢?

首先我们要弄清楚镜面反射(specular)和漫反射(diffuse)的区别。

一束光照到材质表面上,通常会分成反射(reflection)部分和折射(refraction)部分。反射部分直接从表面反射出去,而不进入物体内部,由此产生了镜面反射光;折射部分会进入物体内部,被吸收或者散射产生漫反射。

折射进物体内部的光如果没有被立即吸收,将会持续前进,与物体内部的微粒产生碰撞,每次碰撞有一部分能量损耗转化成热能,直至光线能量全部消耗。

图片15.png

   * 照射在平面的光被分成镜面反射和折射光,折射光在跟物体微粒发生若干次碰撞之后,有可能发射出表面,成为漫反射。

通常情况下,PBR会简化折射光,将平面上所有折射光都视为被完全吸收而不会散开。反射光与折射光它们二者之间是互斥的,被表面反射出去的光无法再被材质吸收。故而,进入材质内部的折射光就是入射光减去反射光后余下的能量。

根据上面的能量守恒关系,可以先计算镜面反射部分,此部分等于入射光线被反射的能量所占的百分比,而折射部分可以由镜面反射部分计算得出。

图片16.png

通过以上代码可以看出,镜面反射部分与漫反射部分的和肯定不会超过1.0,从而近似达到能量守恒的目的。

(3)基于物理的BRDF

BRDF,或者说双向反射分布函数,它接受入射(光)方向Wi,出射(观察)方向W0,平面法线n以及一个用来表示微平面粗糙程度的参数a作为函数的输入参数。

BRDF可以近似的求出每束光线对一个给定了材质属性的平面上最终在某个方向上的反射出来的光线所作出的贡献程度。

BRDF有好几种模拟表面光照的算法,然而,基本上所有的实时渲染管线使用的都是Cook-Torrance BRDF。Cook-Torrance BRDF分为漫反射和镜面反射两个部分:

图片17.png

其中kd是入射光中被折射的比例,ks是另外一部分被镜面反射的入射光。BRDF等式左边的flambert表示的是漫反射部分,这部分叫做伦勃朗漫反射(Lambertian Diffuse)。



03

传统光照与物理光照的对比




传统光照-Phong模型

物理光照-PBR

缺点

1、效果细节不够丰富;

2、与现实有差距;

3、设计师与程度之间没有统一的标准。

1、消耗性能、存储、GPU计算;

2、设计工作量大。

优点

1、速度快;

2、效果上也能够满足大多数要求。

1、写实的,客观的,设计师有客观设计标准,设计与程序实现解耦;

2、效果与现实一致,细节丰富。



04

利用BRDF来建立光照模型


1967年Torrance-Sparrow在Theory for Off-Specular Reflection From Roughened Surfaces中使用辐射度学和微表面理论建立了模拟真实光照的BRDF模型,1981年Cook-Torrance在A Reflectance Model for Computer Graphics中把这个模型引入到计算机图形学领域,现在这个模型已经成为基于物理着色的标准,被称为Cook-Torrance模型

图片18.png

* 法线分布函数模拟的是有多少面朝向你关注的方向;

法线分布函数(Normal Distribution Function,简写为NDFD(h)来描述组成表面一点的所有法线的分布概率。可以近似这么理解:向NDF输入一个朝向h,NDF会返回朝向是h的微表面数占微表面总数的比例,比如有1%的微表面朝向是h,那么就有1%的微表面可能将光线反射到v方向。

几何衰减因子(Geometrical Attenuation Factor)G(l,v)来建模,输入入射和观察光线方向,输出值表示光线未被遮蔽而能从l反射到v方向的比例。

图片19.png

* 几何衰减因子模拟的是朝你方向的面有多少是被各种档住的;

菲涅尔方程(Fresnel Equations)F(l,h),表示光学平面并不会将所有光线都反射掉,而是一部分被反射,一部分被折射,反射比例符合菲涅尔方程(Fresnel Equations)F(l,h) 

   * 菲涅尔方程模拟的是即便光未被档住,也有部分是反射有部分是折射,计算出这个比例,只有反射才可能入眼。

Torrance-Sparrow基于微表面理论,用上述三个函数建立了高光BRDF模型:

图片20.png


05

应用实例


近年来,图形学的技术蓬勃发展,围绕着PBR为中心的新兴技术和理论百花齐放,PBR广泛应用于各行各业,例如,沉浸式4D影院、虚拟与现实混合的游戏和教学互动、投影真实人像的幻影会议、电影画质的移动端游戏、甚至是智慧城市等可视化项目。

威尼斯wns·8885556长期深耕于可视化技术的产品与解决方案应用领域,基于多年业务的积累沉淀以及广泛客户需求的收集,我们启动了“爆品计划”,其定位在于以轻量化的产品专注且高效地解决行业内的难题。本月发布的“FreeXRender—三维模型实时渲染大师”即是公司采用PBR技术研发的一款三维模型实时渲染工具,它能够帮助场景模型呈现更丰富的材质细节,包括油漆表面的斑驳颗粒感、凸起的文字、金属表面的凹凸感以及拉丝效果等。


如想进一步了解PBR及FreeXRender,请下载产品资料以及Demo进行试用:https://pan.baidu.com/s/1sgFsUemJ7U7bZqyXncOumg
提取码:p5cn(复制这段内容后打开百度网盘,操作更方便哦);您还可以留言或直接联系我们的销售人员,我们将会在第一时间与您联系!

 

 

特别说明:

文中大部分图片来自参考文献及网络,侵删;感谢并致敬所有参考文献的作者。

 

参考文献

1、由浅入深学习PBR的原理和实现https://www.cnblogs.com/timlly/p/10631718.html?from=timeline&isappinstalled=0#211-pbr%E6%A6%82%E5%BF%B5

2、PBR理论体系整理(一):基础理论http://www.sztemple.cc/articles/pbr1

3、细说图形学渲染管线

FreeX 产品微信公众号

威尼斯wns·8885556微信公众号

威尼斯wns·8885556视频号