基于物理的渲染—迪士尼的渲染模型_weixin_33749131的博客-程序员宅基地

今天给大家介绍的是一篇关于基于物理渲染(Physically Based Rendering)的技术论文。该篇论文是在2012年Siggraph图形大会上,由迪士尼公司分享的关于PBR技术的报告。PBR是最近游戏渲染领域中比较高级的渲染管线。相比于传统基于Lambert以及Phong模型的渲染管线,PBR采用更加真实的材质模型,能够更好地表现物体表面不同粗糙度带来的不同反射效果,从而能够更贴近真实地模拟各种不同的材质。采用PBR的材质能更好地模拟金属、非金属以及不同粗糙度等材质对光的反射效果。虽然PBR在最近几年才被用于实时的游戏渲染,但是早在几年前它就被用于离线的电影渲染中。而这篇论文正是基于前人提出的材质模型,通过对真实测量的材质数据进行分析对比,提出新的材质模型。最终,迪士尼将这一方法应用到他们的电影渲染中。

我们推荐这篇论文,希望对PBR渲染管线原理有兴趣的开发者,能够通过此文加深对PBR的理解,从而能够在项目开发中更好地利用PBR管线,达到满意的渲染结果。
0.png

如上图所示这是迪士尼公司出品的动画电影 Wreck-It Ralph 中的截图。可以看到人物头顶的金属皇冠、非金属衣领都能达到贴近真实的渲染效果。

不同于前人提出的基于物理的材质模型,这篇文章的材质模型在设计之初并不是以物理正确为原则,而是以让美术设计者更容易理解和使用为原则。文章作者认为是否是物理正确并不重要,重要的是能达到美术设计者的需求并且使用方便、容易理解。因此,他们提出了5个主要的设计原则:

  1. 使用方便、便于理解比物理真实更重要;
  2. 可调节参数越少越好;
  3. 参数的值都必须在效果可接受的范围内归一化到(0~1)之间;
  4. 参数可以被赋予超过其实际可接受范围(0~1)之外的值;
  5. 所有参数组合的效果都必须是可接受并且稳定;

基于这5个原则,文章作者提出了用11个参数表示的材质模型,根据不同的参数,可以渲染出不同的材质,如下图:
请输入图片描述
从上图可以看到,经过对参数的简化,文章提出的材质模型用了11个参数即可非常真实地模拟出金属、非金属以及不同粗糙度的材质光照结果。

文章作者基于上述的5个原则以及对真实测量数据的观察结果,对传统的微表面材质模型中的各项函数进行修改。接下来我们首先介绍传统的微表面模型的通用表达式,然后对其中的每一项函数进行说明,并介绍在文章中采用的各项函数的表达式。

文章中的模型采用了微表面模型的通用形式,该通用形式最早出现在Cook-Torrance模型中:

请输入图片描述

其中,向量 l 和 v 分别表示入射光和视线方向,向量 h 表示 l 和 v 之间的中间向量,它们与法线方向的夹角分别用对应下标的 θ 表示, θd 表示 l 和 v 之间夹角的一半。diffuse 表示漫反射函数,D 表示微表面分布函数,F 表示菲涅尔系数, G 表示阴影系数。文章中模型的 diffuse 函数是:
请输入图片描述
请输入图片描述

其中,roughness 表示粗糙度。对于微表面分布函数 D,目前最好的分布函数是著名的 GGX 函数。但是,文章作者采用了比 GGX 更为通用的形式 GTR (Generalized-Trowbridge-Reitz):

请输入图片描述

它与 GGX 的区别在于, GGX 为上式中 γ= 2 时的结果。文章作者采用了两个不同的 GTR 函数来拟合高光项,分别采用 γ= 1 和 γ= 2 。α 的取值为 roughness 的平方,c 为一个常数用于调节整体缩放。对于菲涅尔项 F,文章采用了 Schlick 的公式:

请输入图片描述

其中, F0 为一个常量,其值取决于材质的透射系数。对于阴影系数 G ,文章作者采用了 Walter 在其论文中根据 GGX 推导的 G 公式,并将公式中的 roughness 从 [0, 1] 缩放到[0.5, 1] 范围。做这个缩放的原因是,根据与实际测量的数据对比以及美术设计者的反馈,高光在 roughness 值较小时显得过于亮。虽然这个缩放的过程使得模型不再物理准确,但是它符合了美术设计者的需求,这也正是这篇文章最主要的设计原则。

在下文中,我们将为大家介绍文章的实验部分,也就是如何对真实采集数据进行观察,并设计材质模型的。大家可以根据兴趣继续阅读,也可直接跳到后面查看结论和未来工作部分。


一、可视化真实采集的BRDF数据

文章作者使用 Matusik 在2003年发表的论文中的数据集,该数据集可以免费从 Mitsubishi 实验室官网下载(www.merl.com/brdf)。该数据集包括了木材、金属、石头、塑料、橡胶、纤维等真实材质的数据。每种材质根据不同入射角和出射角度进行采样,如下图:

请输入图片描述

文章作者开发了一套展示真实测量材质数据以及用 BRDF 模型渲染的结果进行比较的系统,该系统可以在 GitHub 上免费下载(github.com/wdas/brdf),如下图所示:

请输入图片描述

其中,可以选择看真实测量数据(ImageSlice),或者是渲染的数据(Lit Object/Lit Sphere)并进行对比。


二、 从真实数据观察的结果

根据文章作者对漫反射表面的观察发现,在 Lambert 模型的假设前提下,单纯的漫反射并不带有方向性,反射光在每一个反射方向上都是相同的值,但是很少有物体表现出 Lambert 模型的假设前提。特别是在视线与法线接近垂直的区域(grazingangle area),有的表现为快速衰减,有的表现为亮度增加,而这与物体表面的粗糙度有密切联系,如下图所示:
请输入图片描述

从左到右是粗糙表面、光滑表面以及Lambert 模型渲染的漫反射结果,可以看到在球的边缘处,不同程度的粗糙度表现出不同的效果,而Lambert 模型并不能很好的表现出这一特点。虽然前人提出的模型,如:Oren Nayer 以及 Hanrahan-Krueger,有对此现象作一定程度的模拟,但是并不足以表现这个现象。因此,文章作者在设计材质模型漫反射部分时将这一现象考虑在内。

根据文章作者对高光现象(对应于微表面分布函数)的观察发现,真实采集的数据的高光拖尾比传统的材质模型,如:Beckmann、Blinn Phong、Gaussian 等,都要长一些。在与实际测量结果的对比中,GGX的渲染效果最接近,如下图所示:

请输入图片描述

左边是真实测量的结果,中间是用 GGX 模型渲染的结果,右边是用 Beckmann 模型渲染的结果。因此,文章作者在提出的材质模型中采用 GGX(GTR γ= 2 时)与 GTR γ= 1 时函数混合作为高光项 D 。

请输入图片描述

根据文章作者对菲涅尔现象的观察发现,所有的真实测量的材质,在入射光线与视线之间夹角接近180度时,都会出现高亮的现象。例如:上图中,距离视点越远的河面反射的角度越大,反射的光线的亮度就越亮(图中1、2、3从远到近,1最亮)。这一现象正是被 Torrance-Sparrow 微表面模型所观察并在其模型中提出。虽然模型中的被除数项在 grazing angle 区域趋近于无限,但是由于G 项衰减抵消,不会出现问题。文章作者最终采用 Schlick 以及Walter 推导的结果来作为文章中材质模型的 F 和 G 函数。


三、更多的结果展示

下面是利用文章中算法渲染的Wreck-ItRalph动画电影中的一些效果图展示。

请输入图片描述
请输入图片描述


四、结论与未来工作

今天介绍的这篇论文,通过真实测量的材质数据进行分析对比,对已有的微表面模型中的各项做了相应修改、简化模型参数,提出新的材质模型。但是,提出这一模型的原则并非基于物理真实,而是对于美术设计者友好,并方便他们使用。虽然这篇文章中的材质模型能够表现出更加广泛的材质光照反射现象,但是它并不能模拟次表面散射的光照。因此,作者希望在未来工作中解决这一问题。


五、论文相关信息

关于论文作者
Brent Burley,1996年加入迪士尼公司,目前是迪士尼动画工作室首席软件工程师,负责产品中渲染软件开发。主要成果有:开发了一款开源的、用于细分曲面的纹理映射系统Ptex,将基于物理的材质模型用于产品的渲染。





原文出处:侑虎科技
本文作者:admin
转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33749131/article/details/89984682

智能推荐

14寸笔记本电脑_2020年笔记本电脑怎么选,从1000到20000,总有一款适合你_weixin_39965102的博客-程序员宅基地

为了适应快节奏的现代办公环境,笔记本电脑轻薄便携方便移动,自带电池随时随地办公的特性已经成了职场人士不可或缺的工具,更多的家庭用户和学生群体选购电脑优先考虑笔记本电脑。很多朋友在挑选笔记本电脑之初,对笔记本电脑的各硬件配置,笔记本电脑厂商品牌特点,笔记本电脑的各项功能并不了解,只能被动接受销售人员的推荐,从而购买了商家利润高却不符合用户实际需求的笔记本电脑。今天我就来给大家推荐十四款畅销的笔记本电...

Windows Runtime (RT)_dengdengken888的博客-程序员宅基地

看了个BUILD的PPT,Windows Runtime (RT)并不是一些新闻网站说的那样微软自废.NET武功,而是恰恰相反,WinRT是Win32API的现代版,其中有很深的.NET的基因,是Metro UI的.NET基础,如果考察Metadata的变化,WinRT的API定义的元数据是基于标准ECMA 335,也就是.NET的标准 ,WinRT也是一个沙箱的环境,针对AppStore环境设计

自主编程实现二叉树_Strive--顾的博客-程序员宅基地

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一

Linux下磁盘分配问题,ambari分布式部署_超超哥哥yc的博客-程序员宅基地

ambari部署分布式服务后出现的问题:大概运行一周后出现root下分配的50G磁盘空间占满的情况,初步分析应该是安装的时候把接近20-30G的安装文件放道了root下(初次接触Linux),ambari运行产生的日志解决办法几种解决方法如下:合理磁盘分配 ,增加root的磁盘空间;将安装包等放在/home/opt下 ;定期清理ambari生成日志/修改日志生成路径 ;磁盘分配参...

Docker系列(二十三)——Docker实例五Docker安装MongoDB实例_Hello_World_QWP的博客-程序员宅基地

《Docker实例三Docker安装MongoDB实例 》前言在前面一篇文章种,完成了 《Docker安装MySQL实例 》,本篇将继续镜像安装教程,并完成Docker安装MongoDB实例。Docker实例三Docker安装MongoDB实例第一种:使用docker pull 镜像名拉...

audacity_如何通过在Audacity中反转音频来重新创建流行效果_culunyi0802的博客-程序员宅基地

audacityYou can use Audacity to recreate a few really common and popular effects, such as “rewinding” and that creepy ghostly pre-echo. All you need to do is start with reversed tracks. 您可以使用Audacity...

随便推点

Ibatis向oracle库中批量插入数据_etxiyao的博客-程序员宅基地_ibatis oracle 批量插入

使用Ibatis向oracle库中批量插入数据foreach不能用选用iterate标签foreach不能用首先我想到的是foreach标签,但是在xml写出来后,一直提示报错(foreach未被定义)。我确认我写的语法上没什么问题,有可能是我所用ibatis的版本不支持foreach标签。选用iterate标签以下是经过验证的代码:下面展示一些 内联代码片。 <insert id="methodName" parameterClass="java.util.HashMap">

c语言中猴子拿香蕉的代码题,猴子分香蕉(2018年第九届蓝桥杯省赛第二题)_一点能源的博客-程序员宅基地

```java/*** 标题:猴子分香蕉5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。第4只猴子醒来,重新...

linux中sfdisk和parted用法_weixin_33739523的博客-程序员宅基地

1.sfdisk为磁盘分区工具程序,可显示分区的设定信息,并检查分区是否正常也可用来建立分区。用法:sfdisk[options]device选项说明:常用选项:-s[or--show-size]:显示一个分区的大小-c[or--id]:显示或者修改文件系统类型ID-l[or--list]:显示每个设备的分区表信息-...

自我提升篇之--张一鸣:我面试了2000个年轻人,混得好的都有这5种特质!_TylerDu的博客-程序员宅基地

张一鸣:我面试了2000个年轻人,混得好的都有这5种特质!■ 来源 Bytedancer(Bytedancer)作者:张一鸣张一鸣 ,今日头条创始人,2013年,他先后入选《福布斯》“中国30位30岁以下的创业者”和《财富》“中国40位40岁以下的商业精英”。张一鸣演讲整理:为何毕业多年后原本水平差不多的同学都拉开了差距?大家好!各位都非常年轻,我今天来的时候挺有压力。因为我毕业快11年了,看到你们,真是觉得“长江后浪推前浪”。我去年参加了武汉的校招,感觉新一代年轻人的素质确实都非常好。我昨天

gmap mysql cachet_百度谷歌离线地图解决方案(离线地图下载)_fatgn的博客-程序员宅基地

离线地图解决方案,除了买地图数据,使用专业的ArcGIS来做外,也可以使用GMap.Net来做。关于GMap的开发教程,可以看我以前的文章:基于GMap.Net的地图解决方案使用了GMap一年了,也有了一些积累,开发了一个可以下载ArcGIS、百度、谷歌、高德、腾讯SOSO、天地图、Here等地图的地图下载器。百度和google地图加载显示如下:百度普通地图:百度混合地图:谷歌普通地图:谷歌混合地...

利用Hexo+Github搭建个人博客_SoFunnyCode的博客-程序员宅基地

1.创建个人仓库; 2.安装Git; 3.安装Node.js; 4.安装Hexo