PBR渲染介绍

PBR全称(Physicallly-Based Rendering)。笼统的说,就字面含义可以看出,这是一种基于物理规律模拟的一种渲染技术。最早用于电影的照片级真实的渲染。近几年由于硬件性能的不断提高,已经大量运用于PC游戏与主机游戏的实时渲染。几款著名的3D引擎均有了各自的实现(UnrealEngine 4, CryEngine 3, Unity 3D 5)。此外目前国外的一款HTML5 3D引擎(PlayCanvas) 也已使用了PBR,并且在iPhone5s的手机浏览器中可以流畅播放。

本文虽然是介绍渲染技术的,但不是工程师向的,所以不会涉及到任何的高等数学公式与程序代码

PBR的应用

如下是几个实际应用案例,PBR可以达到什么样的效果:

HTML5引擎Demo

使用PBR的游戏截图

使用PBR的动画电影

使用PBR的真人电影

基于PBR的电影级渲染器Arnold

Arnold渲染器是一款高级的、跨平台的渲染API,是基于物理算法的电影级别渲染引擎。近期使用了Arnold的一些电影有:地心引力,饥饿游戏(系列),复仇者联盟(系列),精灵旅社(系列),碟中谍4,X战警(系列),源代码。

PBR的组成

漫反射与反射

漫反射与反射是光线在物体表面作用的最基本的两个表现。传统游戏的渲染系统中也把它们叫做漫反射与高光。

当光线达到物体表面的时候其中的一部分将会沿着表面的垂直法线反弹向与来源光线相反的方向。这就像皮球沿一定角度砸向地面后反弹一样。在越光滑的表面就表现的越像镜面反射,这种现象一般本称作表面高光(Specular)。这个词就是来源于拉丁文的“镜子”的发音。

然而并不是所有的光线都会被反射,部分光线将进入被照射物体的内部。这部分光线一部分被物体吸收转换为热能,另一部分则会在物体内部发生散射,最终离开物体被人眼和摄像机捕获到。这一现象被叫做“漫反射”与“子表面散射”。其中子表面散射(Sub Surface Scattering),经常能看到SSS效果就是这部分光线进过散射后从物体另一边射出的现象。

不同波长的光线的吸收与散射有着很大的不同,这就是为什么白光在不同物体的表面能照射出不同的颜色。比如:某种材料会散射大部分的蓝光,并吸收其它颜色的光,那么这种材料的表面就会表现出蓝色。散射出去的光线是杂乱的,射向各个方向的,所以不会表现出镜面反射的效果。游戏引擎中一般使用漫反射贴图(“Diffuse Map”也叫“Albedo Map”)来描述物体表面的颜色。

能量守恒

由上面的描述我们可以看出,漫反射与反射是相互独立的两部分。入射光线的一部分在物体表面发生了反射,没有反射的一部分进入物体表面被吸收或者被散射。因此可以得出一个重要的结论:漫反射光线+反射光线=入射光线。这就是光线的能量守恒。

这一现象就表现在,同样的光照条件下,反射越强烈的材质表面漫反射就越弱(表现为更暗)。如下图可以看出,从左到右材质的反射逐渐加强,同时材质本身的颜色越来越不明显。

能量守恒是PBR最重要的一个守则,遵循此守则可以确保美术在调整物体材质的漫反射和反射时不至于调出一些打破物理规律,在不同环境中表现极不真实的材质。

金属

这里把金属(导电性材质)单独拿出来说有以下几点原因。

首先,导体的反射度通常都达到60%-90%,而绝缘体只有0%-20%。高反射度导致只有很少的光线能进入导体表面之下发生散射,这也就是为什么导体通常表现的很有“金属光泽"。

第二,导体的反射度针对不同的可见光谱是不同的,这就导致导体能反射出有颜色的光。这种带颜色的反射导体很少,但生活中却很常见。如:金、铜反射出黄色。而绝缘体则没有此种特性,总是反射所有的光线。

最后一点,导体理论上讲只会吸收光线而不会散射光线的。但实际上物体材质总有或多或少的杂质与表面污迹,所以金属类材质也会发生少许的散射。

正因为金属的这些特性,所以很多渲染系统中都单独为材质引入了一个属性“金属度”(Metalness)。这只是方便美术进行材质的调节,并非PBR所必须的。如星际争霸二的材质就没有金属度这个属性,但仍然能表现出人族和神族单位的金属材质。

菲涅耳

菲涅耳是一种反射现象,最早由奥古斯汀-让·菲涅尔发现,因此被以非聂耳反射命名。

从计算机图形学来解释的话,就是随着入射光线相对与表面法线的夹角越大,反射率就越大。也就是说在物体边缘的反射会比中间要亮。在早期的渲染中也有引入菲涅耳反射,但在PBR中进一步完善相关计算公式的几个方面。

第一点,所有的材质,在其“边缘”(入射光线与物体表面角度无限趋近于0度)都会发生完美的镜面反射,且反射所有颜色的光线。这可能是很难想象的,但在物理上已经被证实了。

第二点,不同材质的菲涅耳反射随着角度的变化可以用曲线表示,并且相差都不大。不同金属材质之间差异虽然会更大,但仍然能够被分析并且公式化。因此艺术家们可以很方便的定义几种预定义的材质模板,并在他们之间调整参数就能创造出不同的材质了。

这两点可以由下图很好的解释:

从上图曲线可以看出我们要实现菲涅耳反射非常简单,只需要美术定义出中心最小的反射度,然后程序更具特定的公式计算出不同角度的实际反射度。就可以实现菲涅耳反射了。

微表面

以上的理论都是基于宏观的,然而在微观世界中,物体的表面不可能是绝对平滑的,总有一些或多或少的沟壑。这就导致了反射光线并不是总是平行的。

如下图:

因为微表面存在于微观层面,所以如果使用数据描述的话,由于精度需要将会是海量数据,是任何系统都无法承受的。因此在PBR中我们定义了一个属性“光泽度”(Gloss)或者“光滑度”(Smoothness),它的反属性为“粗造度”(Roughness)。这样就可以在渲染系统中通过光泽度贴图加以描述了。

再次的能量守恒

这里的能量守恒和之前第2点提到的能量守恒不同,第2点是针对于入射光线,反射光线与散射光线,这里的守恒仅仅指反射光线。

反射光线由于微表面的作用造成了不同方向的反射,但总能量维持不变。

下图可以方便理解这一点

从左到右光泽度一次增加,图中的高光点越来越亮,但范围越来越小,因此总亮度维持不变。

在老式的渲染系统中关于高光的实现通常都是错误的,随着光泽度提高不是变的更亮就是变得更暗。


结语

至此,整个PBR都已介绍完毕,如有兴趣了解具体实现的这里推荐一本书《基于物理的渲染-从理论到实践》(Physically Based Rendering – From Theory to Implementation)。

本文作者:张恒(点融黑帮),游戏行业从业11年。做过2D、3D游戏。端游、页游还有手游。既做客户端也做服务端。现如今开始了HTML5 3D游戏新的历程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容