游戏蛮牛学习群(纯技术交流,不闲聊):959392658
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

首页   >   博客   >   連冠榮(Mac)

2018-04-16

2018-4-16 13:24
0 个评论 | 阅读 138 | 收藏 | 举报
基于物理的渲染(PBR)

基于物理的渲染(PBR)是一个实时渲染方法,也是最近實時計算機圖像渲染趋势。PBR在坊間谈论很多,有一些文章是很優秀的但也有少产生混乱。

所以,我也在這试一下解释PBR,它是如何不同于旧的渲染方法。这份目標人群是非工程师(可能是艺术家),所以盡量不会提出任何数学或代码。

PBR之所與上一代的渲染系統不同之處在於,PBR對光源與表面的在圖像生成的背後物理原因更加考究。現代的GPU性能及渲染能力已经足够先进,一些旧的渲染近似算法及一些旧的生产艺术手段,现在可以安全地丢弃。这意味着工程师和艺术家都应该理解这些变化及动机。

我們會從基本開始,讓一些新的名詞有堅固的定義

我们从一些基本的东西开始,在我们开始新的东西之前对各名詞一下一個的定义。所以你們要忍耐一下,之後你会发现它值得阅读。


扩散和反射


扩散和反射:一般也叫Diffuse(漫反射)及Specular(鏡面反射). 是描述表面/光相互作用最基本的两个术语。大多数人都会在实践层面上熟悉这些想法,但可能不知道它们在物理上是如何区别的。


当光线触及一个表面边界时,其中的一些会反射,也就是说,从表面反弹,然后在表面法线的相反方向上留下一个方向。这种行为与扔在地上或墙上的球非常相似,它会以相反的角度弹回。在光滑的表面上,这会产生镜面的外观。“Specular”,通常用来描述奕果,来源于拉丁语中的,意義是鏡子。




然而,并非所有的光都从表面反射出来。通常一些会穿透到照明物体的内部。在那里,它要么被材料吸收(通常转化为热能),要么分散在内部。这些散射光中的一部分可能会从表面反射回来,然后再次出现在眼球和照相机上。这是众所周知的名字:“漫射光”(Diffused Light),“扩散”(Diffusion),”次表面散射”“sub-surface Scattering”-所有描述相同的效果。

漫射光对于不同波长的光的吸收和散射常常是不同的,这就是物体的颜色(如物体吸收了大部分光,但散射了蓝色,就会出现蓝色)。散射往往是混乱但均匀,所以宏觀來說可以说是在所有方向显示相同(和完全不同于镜)!使用这种近似的着色器实际上只需要一个输入,我們稱之為"固有色"(Abedo)。


能量守恒


有了这些描述,我们现在有足够的信息得出一个重要结论,即”扩散”(Diffuse)和”反射”(Reflection)是相互排斥的。这是因为为了使光被漫射, ”扩散”(Diffuse),光必须首先穿透表面(即不能”反射” (Reflection))。这被称为“能量守恒”,这意味着离开表面的光永远不会比原来的光更亮。

这是很容易在渲染系统中执行:这意味着高度反射的物体几乎没有漫射光,仅仅因为几乎没有光线穿透表面,大部分反射出来。反过来也是正确的:如果一个物体有明亮的漫射(Diffuse),它就反射就不能特别亮。

这种能量守恒是基于物理的的一个重要方面。它允许艺术家制作材料的反射率和反照率,而不违反物理定律。虽然在代码中强制执行这些限制并不一定是制作美观的艺术所必需的,但它确实作为一种“物理保護”发挥了有益的作用,它可以防止艺术品在不同的光照条件下过于弯曲或变得不一致。


金属


导电材料,尤其是金属材料,在这一点上值得特别提到,有几个原因。


首先,它们往往比绝缘体(非导体)反射得多。导体通常会表现出反射率可达60-90%以上,而绝缘体通常低得多,在0-20%范围。这些高反射率,防止大多数光到达室内散射,使金属很“闪亮”看。


其次,导体上的反射率有时会在可见光谱上变化,这意味着它们的反射看起来是有色的。这种反射的颜色在导体中是罕见的,但它确实发生在一些日常材料中(如金、铜和黄铜)。绝缘子作为一般规则,没有表现出这种效果,和他们的倒影是无色的。


最后,导电导体通常会吸收而不是散射穿透表面的任何光线。这意味着在理论上导体不会显示任何漫射光的证据。然而,在实践中,金属表面常常有氧化物或其他残留物,会散射少量的光。




正是这种双重性之间的金属和其他所有的一切,导致一些渲染系统采用“metalness”直接输入。在这样的系统中,艺术家指定材料作为金属的程度,而不是只指定反照率和反射率。有时这是一种简单的创建材料的方法,但不一定是基于物理的渲染的特性。




菲涅耳效应


在计算机图形学中,菲涅耳效应这个词指:是在不同角度出现的不同的反射率。

具体来说,以大角度落在表面上的光,比表面撞击的光更容易反射。这意味着用适当的菲涅尔效应渲染的物体在边缘附近会有更亮的反射。我们大多数人对此已经很熟悉了,它在计算机图形学中的出现并不新鲜。然而,PBR着色器中流行的Fresnel方程评价了一些重要的修正。


第一,对于所有的材料,任何光滑物体的边的反射率在为大角度,应该是像完美的(无色)的镜子。真的-任何物质都可以作为一个完美的镜子,如果它是光滑的,并观看在直角!这可能是违反感觀直觉的,但在物理学是這樣的。


第二,关于菲涅耳特性的观察是,不同材料的在不同角度的菲涅耳效应变化不大。只是金属变化有點大,但金属的菲涅耳效应數據有很多數據測量。

这对我们来说意味着,為了實現真實的渲染,艺术家不用在Specular Map, Diffuse Map上加高光,補色等,而集中在材料的物理特性(固有色,金屬性及光滑度)上。对菲涅尔效应的控制减少,只需参考其他一些现有的材料属性(而不是扩大)。因為材質的數值已經在材質庫了!




微表面


上述反射和扩散的描述都取决于表面的取向。在很大程度上,这是由所呈现的网格的形状提供的,它也可以使用法线贴图来描述较小的细节。有了这个信息,任何渲染系统都可以很好地展现漫射和反射。然而,还有一大块仍未考慮,大多数真实世界的表面都有很小的缺陷:细小的凹槽、裂缝和肿块,肉眼看不见,而且太小,无法在任何正常分辨率的法线贴图中表现出来。尽管肉眼看不见,但这些微观特征仍然影响光的扩散和反射。





微表面的细节也体现的最明显效果(表面的扩散的影响不大,不会在这里进一步讨论)。在上面的图表中,你可以看到入射光的平行线在粗糙表面反射时开始发散,因为每一光线以不同的方向撞击表面的一部分。在球壁类比模拟将悬崖边的或者是类似的不平衡:球仍然会反弹但不可预知的角。简而言之,表面越粗糙,反射光就越发散或出现“模糊”。




不幸的是,每一个微相特征评价遮阳在艺术生产,条件是禁止的内存使用和计算。那我们该怎么办呢?原来,如果我们放弃了,而不是直接描述表面微观粗糙度测量指定一般,我们可以相当精确的着色,产生类似的结果。这项措施通常被称为“光泽”、“平滑度”或“粗糙度”。它可以被指定为给定材质的纹理或常量。




这是任何材料表面微细节的一个非常重要的特征,是真正的世界充满了各种各样的微相特征。光泽贴图不是一个新概念,但它确实发挥了举足轻重的作用,基于物理的阴影从微表处的细节也反射光这么大的作用。我们将很快看到,有关于微表处,PBR遮阳系统改进性能的几点思考。




能量守恒(又一次)


我们假设遮阳系统正在微表面细节的考虑,并适当扩散反射光,它必须反映光的正确金额。令人遗憾的是,许多上了年纪的渲染系统错了,反映了太多或太少的光,取决于表面微粗糙度。




当方程的适当的平衡,一个渲染器应显示粗糙的表面有较大的反射亮点出现调光比小,更清晰的显示一个光滑的表面。正是这种明显的亮度差别是关键:两种材料都反射着同样数量的光,但粗糙的表面向不同的方向扩散,而光滑的表面则反射出更集中的光束:


评论 (0 个评论)

阅读排行

评论排行

推荐博客

最新博客

返回顶部