基于物理的渲染_基于物理渲染 - CSDN
精华内容
参与话题
  • 基于物理渲染

    2019-04-06 19:47:15
    基于物理渲染和光线追踪算法 基于物理模型的渲染的目的是为了渲染出一张跟某个真实的3D场景一模一样的图片,就仿佛你站在什么地方对这现实场景拍了一张照片一样。然而实际上,在这里说渲染出一张跟真实的3D场景...

    基于物理的渲染和光线追踪算法

    基于物理模型的渲染的目的是为了渲染出一张跟某个真实的3D场景一模一样的图片,就仿佛你站在什么地方对这现实场景拍了一张照片一样。

    然而实际上,在这里说渲染出一张跟真实的3D场景一模一样的画面是不够精确的,因为在每个人的眼睛里,世界本来就是不一样的。有的人心里只有妹子,有的人心里只有代码。基于物理的渲染实际上只是在做在确定参数下,进行鲁棒性比较高的现实世界的模拟。鲁棒性这个词可能一般的工人阶层很少接触,如果你是读了硕士或者博士的,应该很熟悉。我们需要根据物理光和与物理光反应的物质,基于我们知道的显示技术,来呈现出最好的视觉效果。

    基本上大部分基于物理渲染的系统都是基于光线追踪算法的。为什么大家都这么偏好光线追踪,是因为光线追踪是最简单的算法,所以不要抛出一个光线追踪就觉得自己很牛逼,这没什么值得骄傲的,你掌握的只是一个最简单的算法。光线追踪算法主要依据的是光线在场景中与物体产生交互然后反射出来的路径来对整个画面进行渲染。

    虽然我们有很多种方式可以去实现光线追踪器,但无论你怎么实现,至少都会需要处理一下几个主题:摄像机、射线相交、光源、可见性检测、表面散射、间接的光线照射、光线的传播。

    摄像机

    跟着我们撸完了OpenGL知识点的人,肯定都是接触了摄像机的,摄像机的目的就是在你想拍照的位置用你最想看的角度去看一个东西。基本上各大计算机图形学的书籍一说到摄像机都会提到小孔成像的概念,其实我们也不知道他们提这种古董出来是个什么意思。我们现在都是用手机拍照的好吗。很多书籍引出小孔成像原理来企图使得对摄像机的说明变得更加清晰,但我们要说的是,时代变了,我们这代人压根不知道小孔成像的那些东西,我们见过的更多的是肾6。所以你完全可以忽略掉小孔成像这一段。

    摄像机最重要的功能就是定义一个你看3D场景的视野,也就是定义了什么东西能被你看到。当别人跟你说小孔成像的时候,你想起来我们的视椎体就可以了,他说了半天不过是想告诉你那些显而易见的东西。我们非常确认,直接画出视椎体,比讲一大堆小孔成像更能让人理解。

    摄像机的一个重要作用就是计算在你所看到的一个画面中的某一个像素点,所有光线对这一点的亮度所作出的贡献。当然我们目前只是在的镜头只有一个的情况下。实际上我们的拍照的时候,镜头可能是多层的,有可能是多个的。不过这些都不关我们的事。我们只考虑一个,因为一个就非常耗时了。当有超过1个镜头(凸透镜什么的),你再去想小孔成像的问题。不过那时候你肯定碰到的是具体的现实问题,所以也不需要去考虑小孔成像。你只需要想起来视椎体就够了。

    我们将在后面再介绍关于摄像机的更多信息,你实现一个摄像机的时候,就可以支持多个摄像机。

    我们现在应该知道的是,我们通过摄像机可以获得一个画面中的某个点与为这个贡献了颜色的光线之间的关系。剩下的就是光线如何在场景中传播和衰减,最后到达这个像素点的时候,它到底是个什么颜色,能量有多强的问题。

    写代码就是要逻辑清晰,要不然就是乱七八糟的。

    射线与物体的相交检测

    当我们去计算光线的时候,我们需要解决的第一个问题就是:光线与哪个物体第一次相交,交点在哪里。此时的这个交点对于光线来说就可以可见的一个点,此时我们就需要去模拟光线与物体在那一点的交互。为了找到谁与光线产生了交互,我们必须使用射线相交检测,来看看谁是第一个与我们的光线产生相交的那个。

    这样一来我们就需要一些几何库,几何库的目的主要是定义基本的几何形体,比如:射线、球、包围盒、胶囊、三角形等等。然后我们还需要实现射线与各种基本几何形体的相交检测算法,如果相交,则返回相交的点的坐标。这里为什么只需要和基本的几何形体进行相交检测就可以了呢?因为复杂的物体就是由这些简单的物体组成的嘛。当然,当射线与某个乖乖相交之后,你只知道交点的坐标是不够的,一般的渲染算法还需要知道这个点的法线以及材质,才能知道该点最终的亮度。在我们基于物理的渲染算法里,我们还需要更多的信息,比如说,我们还需要知道这个点的各种偏导数(偏导数宏观上来说是描述了某一点的变化的速度)、局部参数描述下的表面法线。(法克,全是一些晦涩的概念)

    最后,我们的场景当然是有很多个物体构成的,不是一个。所以到这时候,那些小学没读完的写代码就已经写不下去了,因为他们不会组织描述一套复杂系统鲁棒性较高的代码。不过即便你能写出来正确的代码,比如我们要知道哪个点是光线射出去后,第一个相交的点,我们最屌丝的做法是用光纤跟场景里的物体全部玩一遍,然后找出离光源最近的相交点。但你的场景稍微复杂一点,你的这套系统就顶不住了。当然,如果你是做电影渲染的,没问题。如果你是做实时渲染,那么你就麻烦大了。当然,我们介绍的方法岂能如此屌丝。我们知道即便我们说出方法,仍然有大量的玩家看不懂。

    光照强度

    在上一个阶段,我们已经得到了某一个被着色的点的几何信息以及如何去着色的一些附加信息。但我们的最终任务是计算在某一个视角下,某一点有多少光线跟它发生了关系,并且我们还要调查处,光线与这个点到底发生了什么关系,到底见不见的人。这样我们就需要触及两个概念,第一个就是光源的几何描述信息,另一个就是光在这一点作用后是如何辐射出来的。比如对于简单的光源,光源的几何描述信息是比较简单的,比如说点光源,现实世界是没有这家伙的,谁跟我说有点光源的!所以我们通常使用其他的几何模型去模拟。(那我们进阶课学的点光源是啥?)。我们在物理渲染里的光源稍微会复杂一点,我们的光源不仅具备几何模型,而且光源通过几何模型的表面往外辐射光线。

    我们假设一个光源的光照强度为I,我们假设有个球套在点光源上,点光源刚好位于球的中心,假设球的半径是1,那么球表面某一点的光照强度是多少呢?答案是:I/4PI。其实你只要知道这一点,就可以大致知道后面光照怎么算了。俗话说,万事就差一个带你入门的。

    可见性检测

    在我们之前介绍的那些奇奇怪怪的玩意里,我们其实没有讲一个东西,那就是:阴影。每一个光线只对点亮物体做了贡献,那么那些没被点亮的东西咋办呢?我们在后面的内容中会详细介绍这部分玩法。实际上是非常简单的。

    表面的反射

    现在我们已经算出了两个对于着色来说非常重要的信息了:被着色点的位置和光照强度。现在我们需要知道,光线射完了之后,会有多少倍反射出来,因为这些光线最终是要进入我们的氪金狗眼的。没有进入我们的眼镜的光线,我们是看不见的。所以我们还需要之后,反射的时候有多少能量被反射出来了。每个物体都有一个材质,用来描述所有点的光照反射方面的属性。实际上就是BRDF。这个算法告诉我们,有多少能量被反射出来了。现在我们计算一个光线L有多少能量被反射出来就变得明鸟了。这里计算出来的这个强度跟我们之前讲的那个辐射强度有一点点区别,我们后面再说。

    在我们的基于物理渲染的光照反射算法里,其实可以用的有很多种,比如:BRDF、BTDF、BSDF,最复杂的可能是:BSSRDF了,我们同学里有很多变态一定会去研究BSSRDF,因为这些人是抖M倾向的。

    间接的光线照射

    间接的光线照射就是那些通过其他物体反射过来照亮了某一点的光线。我们在opengl课程里面只介绍了被光直接照亮如何计算,如果是被间接照亮的该怎么办呢?所以这个部分主要是来计算间接光线照射对某一个像素点最终产生了多少颜色贡献。这里介绍的技术还可以用来渲染透明物体。

    光线的传播

    目前,我们所讨论的所有东西都是假设我们的光线在真空中传播的状态,但是事实上,大部分情况下,我们的光线不是在真空中传播,除非你模仿宇宙中的东西。所以我们还需要根据光线所处的环境,来让光的传播变得更真实,比如说有雾的时候,该怎么模拟光线,光线的穿透力如何。

    总结

    我们在这里讲完了基于物理渲染的整个大的逻辑主干,以及要处理的问题大致有哪些。这每个系统中又涉及到很多细节,所以不要以为我们讲的很多东西没有用,我们只是没介绍怎么用她们而已,随着你的实践的增多,会发现他们的用处。如果你没什么经历,或许永远不会发现,我们opengl基础课中那些例子是用来干嘛的。最简单的边缘检测,这是我们在每个进阶课里都讲了的。它是干哈的呢?举个例子:FXAA就是基于边缘检测的算法。所以说,我们介绍的很多知识点都是关键知识点。我们为同学们掰开了一个缝,同学们能走多远看同学们自己了。不是我们不讲,是因为每个缝里面的东西都太复杂,都是综合实力的体现。所以那些抖M的差不多都已经进到缝隙里面去了。




    转载于:https://juejin.im/post/5ca9022df265da30784e1ac7

    展开全文
  • 基于物理渲染(PBR)白皮书 原作者博客链接:https://blog.csdn.net/poem_qianmo 目录 PBR核心理论 微平面理论(Microfacet Theory) 微观尺度来看(表面越粗糙,反射越模糊,因为表面取向与整个宏观表面取向...
    • 基于物理的渲染(PBR)白皮书

    原作者博客链接:https://blog.csdn.net/poem_qianmo

    目录

    PBR核心理论

    微平面理论(Microfacet Theory)

    微观尺度来看(表面越粗糙,反射越模糊,因为表面取向与整个宏观表面取向的偏离更强)

    宏观上看,非光学平面可以被视为在多个方向上反射和折射光

    漫反射和次表面反射的本质相同

    能量守恒 (Energy Conservation)

    菲涅尔反射(Fresnel Reflectance)

    线性空间(Linear Space)

    色调映射(Tone Mapping)

    渲染方程与BxDF

    渲染方程与反射方程

    某一点p的渲染方程

    实时渲染中的渲染方程:反射方程(The Reflectance Equation),

    BRDF

    漫反射BRDF模型

    传统型(如Lambert)

    基于物理型(如GGX、Disney Diffuse)

    高光反射BRDF模型

    基于微平面理论的Cook-Torrance BRDF

    Cook-Torrance Specular D(h) 法线分布函数 (Normal Distribution Function)

    Cook-Torrance Specular F(V, h)  菲涅尔方程(Fresnel Equation)

    Cook-Torrance Specular G(L, V, h) 几何函数(Geometry Function)

    分母 4(n·l)(n·v) 校正因子(correctionfactor)

    迪士尼原则的BxDF(Disney Principled BxDF)

    Disney Diffuse 

    Disney Specular D(GTR)

    Disney Specular F(Schlick Fresnel)

    Disney Specular G(Schlick Smith)

    基于物理的环境光照(Physically Based Environment Lighting )

    漫反射环境光照部分

    镜面反射环境光照部分


    PBR核心理论

    微平面理论(Microfacet Theory)

     微平面理论是将物体表面建模成做无数微观尺度上有随机朝向的理想镜面反射的小平面(microfacet)的理论。在实际的PBR 工作流中,这种物体表面的不规则性用粗糙度贴图或者高光度贴图来表示。微观几何(microgeometry)的效果是在表面上的不同点处改变微平面的法线,从而改变反射和折射的光方向。

    出于着色的目的,通常会用统计方法处理这种微观几何现象,将表面视为具有微观结构法线的随机分布,并将宏观表面视为在每个点处多个方向上反射(和折射)光的集合。在微观尺度上,表面越粗糙,反射越模糊,表面越光滑,反射越集中。

    微观尺度来看(表面越粗糙,反射越模糊,因为表面取向与整个宏观表面取向的偏离更强)

    宏观上看,非光学平面可以被视为在多个方向上反射和折射

    从表面反射出的光的行为很好理解,那么,从表面折射的光会发生什么变化? 这取决于对象本身的特性:

    • 对于金属,折射光会立刻被吸收 - 能量被自由电子立即吸收。
    • 对于非金属(也称为电介质或绝缘体),一旦光在其内部折射,就表现为常规的参与介质,表现出吸收和散射两种行为。

    漫反射和次表面反射的本质相同

    一般用于半透明材质(皮肤、玉、蜡、大理石、牛奶),当光入射到透明或半透明材料表面时,一部分被反射,一
    部分被吸收,还有一部分经历透射。次表面散射,Subsurface Scattering,简称SSS(又简称3S),就是光射入半透明材质后在内部发生散射,最后射出物体并进入视野中产生的现象,是指光从表面进入物体经过内部散射,然后又通过物体表面的其他顶点出射的光线传递过程。 

    能量守恒 (Energy Conservation)

    出射光线的能量永远不能超过入射光线的能量。随着粗糙度的上升镜面反射区域的面积会增加,作为平衡,镜面反射区域的平均亮度则会下降。

    菲涅尔反射(Fresnel Reflectance)

     光线以不同角度入射会有不同的反射率。相同的入射角度,不同的物质也会有不同的反射率。万物皆有菲涅尔反射。F0是即0度角入射的菲涅尔反射值。大多数非金属的F0范围是0.02~0.04,大多数金属的F0范围是0.7~1.0。

    线性空间(Linear Space)

    光照计算必须在线性空间完成,shader 中输入的gamma空间的贴图比如漫反射贴图需要被转成线性空间,在具体操作时需要根据不同引擎和渲染器的不同做不同的操作。而描述物体表面属性的贴图如粗糙度,高光贴图,金属贴图等必须保证是线性空间。

    色调映射(Tone Mapping)

    也称色调复制(tone reproduction),是将宽范围的照明级别拟合到屏幕有限色域内的过程。因为基于HDR渲染出来的亮度值会超过显示器能够显示最大亮度,所以需要使用色调映射,将光照结果从HDR转换为显示器能够正常显示的LDR。

    渲染方程与BxDF

    渲染方程与反射方程

    渲染方程(The Rendering Equation)作为渲染领域中的重要理论,其描述了光能在场景中的流动,是渲染中不可感知方面的最抽象的正式表示。根据光学的物理学原理,渲染方程在理论上给出了一个完美的结果,而各种各样的渲染技术,只是这个理想结果的一个近似。

    渲染方程的物理基础是能量守恒定律。在一个特定的位置和方向,出射光 Lo 是自发光 Le 与反射光线之和,反射光线本身是各个方向的入射光 Li 之和乘以表面反射率及入射角。这个方程经过交叉点将出射光线与入射光线联系在一起,它代表了场景中全部的'光线传输。所有更加完善的算法都可以看作是这个方程的特殊形式的解。

    某一点p的渲染方程

    实时渲染中的渲染方程:反射方程(The Reflectance Equation),

    在实时渲染中,我们常用的反射方程(The Reflectance Equation),则是渲染方程的简化的版本,或者说是一个特例:

    BRDF

    BRDF是关于入射光方向和反射光方向的四维实值函数,它等于反射方向的光亮度和入射方向入射光的辉度之比。

    漫反射BRDF模型

    传统型(如Lambert)

    基于物理型(如GGX、Disney Diffuse)

    从1994年的Oren Nayar开始,这里一直统计到今年(2018年)。其中较新的有GDC 2017上提出的适用于GGX+Smith的基于物理的漫反射模型(PBR diffuse for GGX+Smith),也包含了最近在SIGGRAPH2018上提出的,来自《使命召唤:二战》的多散射漫反射BRDF(MultiScattrering Diffuse BRDF)。

    高光反射BRDF模型

    基于微平面理论的Cook-Torrance BRDF

    微平面理论的基本假设是微观几何(microgeometry)的存在,微观几何的尺度小于观察尺度(例如着色分辨率),但大于可见光波长的尺度(因此应用几何光学和如衍射一样的波效应等可以忽略)。且微平面理论在2013年和以前时仅用于推导单反射(single-bounce)表面反射的表达式; 而随着领域的深入,最近几年也出现了使用microfacet理论对多次反弹表面反射的一些探讨。

    由于假设微观几何尺度明显大于可见光波长,因此可以将每个表面点视为光学平坦的。 如上文所述,光学平坦表面将光线分成两个方向:反射和折射。

    每个表面点将来自给定进入方向的光反射到单个出射方向,该方向取决于微观几何法线(microgeometry normal)m的方向。 在计算BRDF项时,指定光方向L和视图方向v。 这意味着所有表面点,只有那些恰好正确朝向可以将L反射到V的那些小平面可能有助于BRDF值(其他方向有正有负,积分之后,相互抵消)。在下图中,我们可以看到这些“正确朝向”的表面点的表面法线m正好位于L和V之间的中间位置。L和V之间的矢量称为半矢量(half-vector)或半角矢量(half-angle vector); 我们将其表示为h。

    并非所有m = h的表面点都会积极地对反射做出贡献;一些被L方向(阴影shadowing),V方向(掩蔽masking)或两者的其他表面区域阻挡。Microfacet理论假设所有被遮蔽的光(shadowed light)都从镜面反射项中消失;实际上,由于多次表面反射,其中一些最终将是可见的,但这在目前常见的微平面理论中一般并未去考虑,各种类型的光表面相互作用如下图所示

    利用这些假设(局部光学平坦表面,没有相互反射),可以很容易推导出一个被称为Microfacet Cook-Torrance BRDF的一般形式的Specular BRDF项。此Specular BRDF具有以下形式:

    Cook-Torrance Specular D(h) 法线分布函数 (Normal Distribution Function)

    描述微面元法线分布的概率,即正确朝向的法线的浓度。即具有正确朝向,能够将来自L的光反射到V的表面点的相对于表面面积的浓度。

    业界较为主流的法线分布函数是GGX(Trowbridge-Reitz),因为具有更好的高光长尾:​​​​​​

     

    Cook-Torrance Specular F(V, h)  菲涅尔方程(Fresnel Equation)

    描述不同的观察角下表面所反射的光线所占的比率。

    对于菲涅尔(Fresnel)项,业界方案一般都采用Schlick的Fresnel近似,因为计算成本低廉,而且精度足够:

    Cook-Torrance Specular G(L, V, h) 几何函数(Geometry Function)

    描述微平面自成阴影的属性,即m = h的未被遮蔽的表面点的百分比。

    Eric Heitz展示了Smith几何阴影函数是正确且更准确的G项,并将其拓展为Smith联合遮蔽阴影函数(Smith Joint Masking-Shadowing Function),该函数具有四种形式,较为常用的是分离遮蔽阴影(Separable Masking and Shadowing Function)。该形式将几何项G分为两个独立的部分:光线方向(light)和视线方向(view),并对两者用相同的分布函数来描述。

    UE4的方案是上面列举中的“Schlick-GGX”,即基于Schlick近似,将k映射为k=a/2,去匹配GGX Smith方程:

    分母 4(n·l)(n·v) 校正因子(correctionfactor)

    作为微观几何的局部空间和整个宏观表面的局部空间之间变换的微平面量的校正。

    迪士尼原则的BxDF(Disney Principled BxDF)

    在2012年迪士尼原则的BRDF被提出之前,基于物理的渲染都需要大量复杂而不直观的参数,此时PBR的优势,并没有那么明显。在2012年迪士尼提出,他们的着色模型是艺术导向(Art Directable)的,而不一定要是完全物理正确(physically correct) 的,并且对微平面BRDF的各项都进行了严谨的调查,并提出了清晰明确而简单的解决方案。

     

    Disney Diffuse 

    // [Burley 2012, "Physically-Based Shading at Disney"]
    float3 Diffuse_Burley_Disney( float3 DiffuseColor, float Roughness, float NoV, float NoL, float VoH )
    {
            float FD90 = 0.5 + 2 * VoH * VoH * Roughness;
            float FdV = 1 + (FD90 - 1) * Pow5( 1 - NoV );
            float FdL = 1 + (FD90 - 1) * Pow5( 1 - NoL );
            return DiffuseColor * ( (1 / PI) * FdV * FdL );
    }
    

    Disney Specular D(GTR)

    // Generalized-Trowbridge-Reitz distribution
    float D_GTR1(float alpha, float dotNH)
    {
    	float a2 = alpha * alpha;
    	float cos2th = dotNH * dotNH;
    	float den = (1.0 + (a2 - 1.0) * cos2th);
    	
    	return (a2 - 1.0) / (PI * log(a2) * den);
    }
     
    float D_GTR2(float alpha, float dotNH)
    {
    	float a2 = alpha * alpha;
    	float cos2th = dotNH * dotNH;
    	float den = (1.0 + (a2 - 1.0) * cos2th);
    	
    	return a2 / (PI * den * den);
    }
    

    Disney Specular F(Schlick Fresnel)

    // [Schlick 1994, "An Inexpensive BRDF Model for Physically-Based Rendering"]
    float3 F_Schlick(float HdotV, float3 F0)
    {
            return F0 + (1 - F0) * pow(1 - HdotV , 5.0));
    }
    

    Disney Specular G(Schlick Smith)

    // Smith GGX G项,各项同性版本
    float smithG_GGX(float NdotV, float alphaG)
    {
            float a = alphaG * alphaG;
            float b = NdotV * NdotV;
            return 1 / (NdotV + sqrt(a + b - a * b));
    }
     
    // Smith GGX G项,各项异性版本
    // Derived G function for GGX
    float smithG_GGX_aniso(float dotVN, float dotVX, float dotVY, float ax, float ay)
    {
            return 1.0 / (dotVN + sqrt(pow(dotVX * ax, 2.0) + pow(dotVY * ay, 2.0) + pow(dotVN, 2.0)));
    }
     
     
    // GGX清漆几何项
    // G GGX function for clearcoat
    float G_GGX(float dotVN, float alphag)
    {
            float a = alphag * alphag;
            float b = dotVN * dotVN;
            return 1.0 / (dotVN + sqrt(a + b - a * b));
    }
    

    基于物理的环境光照(Physically Based Environment Lighting )

    有了直接光部分,我们也需要环境光。所以PBR核心知识体系的第六部分是基于物理的环境光照,一般大家也直接默认环境光照的技术方案是基于图像的光照(Image Based Lighting, IBL)。这也是真正让基于物理的渲染画质提升的主要贡献者。

    漫反射环境光照部分

    一般采用传统IBL中辉度环境映射(Irradiance Environment Mapping)技术,并不是基于物理的特有方案,这里暂不讨论。

    镜面反射环境光照部分

    业界中一般会采用基于图像的光照(IBL)的方案。要将基于物理的BRDF模型与基于图像的光照(IBL)一起使用,需要求解光亮度积分(Radiance Integral),而求解光亮度积分通常会使用重要性采样(Importance Sample)。重要性采样(Importance Sample)即通过现有的一些已知条件(分布函数),想办法集中于被积函数分布可能性较高的区域(重要的区域)进行采样,进而可高效地计算准确的估算结果的的一种策略。

    展开全文
  • 基于物理渲染-Disney Shading

    千次阅读 2018-04-13 16:09:43
    Physically Based Shading at Disney 1 介绍 在我们成功地完成了基于物理的头发明暗处理(Tangled .27)之后,我们开始考虑开发基于物理模型的更广泛的阴影处理模型。在基于物理的头发模型中,我们能够在保持美术...

    Physically Based Shading at Disney

     

    介绍

     在我们成功地完成了基于物理的头发明暗处理(Tangled .27)之后,我们开始考虑开发基于物理模型的更广泛的阴影处理模型。在基于物理的头发模型中,我们能够在保持美术控制的同时获得很大程度的视觉丰富性。然而,事实证明,将头发的光照与场景的其余部分结合在一起,仍然使用传统的“ad-hoc”阴影模型和实时的灯光是很有挑战性的。

    对于随后的电影,我们希望增加所有材料光照效果的丰富性,同时使照明效果在材料和环境之间更加一致,同时也希望通过使用简化工作流来提高美术设计师的工作效率。

    刚开始时,我们不清楚要使用哪种光照模型,甚至不知道怎样使用。我们是否应该使用能量守恒定律?是否应该支持折射率等物理参数?

    对于漫反射Lambert似乎是公认的公式,而高光似乎在论文中受到更多的关注,一些模型如Ashikhmin-Shirley (2000) [3]旨在直观,实用性强,物理性貌似合理。像其他一些模型He et al. (1991) [12]提供了更加全面的物理模型,还有一些旨在改进数据拟合,[15, 14, 22, 17, 4],但是很少直接操作。我们已经实现了几种模型,可用让设计师选择并且组合他们,但是复杂的参数又使我们回到了我们试图避免的简单工作流。

    一项对大量材料进行测试的论文Ngan et al. (2005)比较了五种流行的光照模型,有些模型总体上比其他模型表现得更好,但有趣的是,模型的性能之间有很强的相关性—有些材料很好地代表了所有的模型,但对于其他材料的来说,没有模型证明是合适的。在少数情况下添加高光效果会很有用,那么问题来了:在复杂的材质中什么模型可以作为代表?

    要回答这个问题,并更直观的评估BRDF模型,我们开发了一个新的BRDF查看器,可以显示和比较测量和分析BRDFs。我们发现了新的、直观的方法来测量BRDF数据,我们发现在已知模型中没有很好的模型来体现材料中特性。

    在这些记录中,我们将分享研究测量材料的观察结果,以及我们已经收集到的关于哪些模型与测量数据吻合的见解。然后我们将展示我们现在正在使用的所有当前产品的新模型。我们还将描述我们在设计中采用这种新模式的经验,并讨论如何在保持简单性和健壮性的同时,增加美术设计师的易控性。

    微平面模型microfacet

    我们定义的BRDF模型在测量的材质和microfacet模型之间进行对比[30,7, 33],microfacet描述了一个表面在光照向量L 视线V下发生反射,那么一定存在一部分表面或者微平面上其法线对齐于与L和V的半角向量。半角向量有时候也定义为微平面法线:,对于各项同性的一般microfacet模型如下:                      

    该公式中漫反射项为未定义项,diffuse通常假定用常量表示,对于高光部分,D是微平面法线分布函数,F是fresnel函数,G是几何衰减函数。θL和θV在L和V向量相对于法线的入射角,θH是法线和半角矢量H之间的夹角。θD是 L和半矢角量H之间的的角度。

    大多数貌似合理的物理模型都没有在微平面上进行具体的描述,microfacet模型有分布函数模型,菲涅耳系数和其他可以添加的如几何衰减函数。唯一真正的区别microfacet模型和其他模型之间是否有明确的来自模型推导的因子,在模型中不包含可以确定一个隐含遮蔽因子乘以4 cosθl cosθv 分解出D和F的因子。

    可视化测量BRDFs

    3.1 The “MERL 100”(三菱电气研究实验室)

     

    图一:100 BRDF的MERL图片

    100个一组的各项同性BRDF材料样品被Matusik等人采样,涵盖了广泛的材料包括油漆木材,金属,织物,石材,橡胶,塑料和其他合成材料。这组数据是免费提供的,在www.merl.com/brdf三菱电子研究实验室,通常用于新的BRDF模型评估。如图表一所示。

    100个MERL中的每个BRDF的采样密度在90,90,180的立方体沿θH,θD,和φd轴坐标分别采样。这些对应于1度增量(除了θh轴),被扭曲到集中在镜面峰值附近的数据样本。测量已经被过滤并根据需要外部修改,这样数据中就没有漏洞了。数据很容易使用,但是还不清楚数据的准确性,特别是在光线沿水平面附近。正因为如此,一些研究人员在进行拟合时丢弃了接近水平面的数据,但这些数据仍然是值得考虑的,因为它可以对材料的外观产生深远的影响。

    3.2 BRDF浏览器

    图二:Disney BRDF Explorer

     

    为了检查MERL测量的材料数据和比对分析模型,我们开发出了一种新的工具,BRDF资源管理器,如图二所示,它开源在github.com/wdas/brdf,其具有以下特点:

    • 加载和用GLSL分析多个BRDF的能力
    • 负载测量BRDF的能力,包括各项异性材料的样品
    • 多个数据图(3D半球视图,极坐标图和各种笛卡尔图)
    • 计算反照率图(即方向性半球反射率)
    • 带有曝光控制的图像切片视图
    • 光照对象视图与重要性采样的IBL
    • 光照球体视图
    • 参数模型的动态UI控件

    这个工具在比较现有的分析模型和开发我们的新模型时,是非常有用的。令人惊讶的是,

    它也被证明是对美术设计师作为交互式BRDF编辑器很有用,使他们更深入地了解模型参数和BRDF空间。

    3.3 图像切片

     图三:BRDF图像切片红色塑料和高光红色塑料显示与“切片空间”的示意图

    对测量材料进行可视化的最简单、最直观的方法之一就是简单地将其视为一堆图像,我们发现这是一个非常强大的工具,可以获得对数据的直觉体验。事实上,所有有趣的特点在MERL100材料的φD = 90层可见。图3显示了这个空间的示意图以及两个材料样品。其他部分大致是该版本的扭曲版本,如图4所示。这一观测在最近的文章Romeiro (2008) [26] and Pacanowsi (2012) [24] 为各向同性的BRDF模型简化的形式的基础(θH,θD)。

    图四:镜面的红色塑料为φD值不同的切片,L在半角矢量的旋转方位。右上角的黑色区域代表BRDF区域的一部分,L或v向量在水平线以下。

     

    在图像切片中,左边缘代表镜面反射峰,上边缘代表菲涅耳峰。注意,沿着底部边缘,光线和视线向量重合,因此底部边缘代表垂直反射,特别右下角代表平射光线(视线和光线方向一致并且与平面的夹角为0)的反光。漫反射显示在整个BRDF空间,但图像的中间部分代表了漫反射的效应。

    图3示意图像还包括θL或θV的等值线,许多漫反射效果,倾向于遵循这个轮廓线。请注意,这些等值线拉直到φD接近零,比较φD可以展现出材质的效果是由于漫反射还是高光反射。另一个提示当然是颜色,漫反射是由于次表面散射和吸收引起的可见光,而高光反射来自表面且不是有色的(除非表面是金属的,在这种情况下没有漫射成分)。

     

    4 MERL材质的观察

    4.1 漫反射观察

     图五:该材质展示了漫反射颜色的变化,第一行渲染时点光源响应球面,第二行BRDF图像切片。

    漫反射是指折射到表面、经散射、部分吸收和再发射的光线。考虑到某些光被吸收,漫射反应将带有表面的颜色,任何有色非金属材料的一部分都可以被认为是漫反射的。

    图六:100个MERL材料的反射光效果,左边50个光滑材质(f(0) > 0.5),右边50个粗糙材质(f(0) <0.5),θh = 0是高光峰值,θh = 90代表漫反射显示(无高光)。

    图七:红色塑料,高光和漫反射的效果图

    Lambert漫反射模型假定折射光散射足够大,不具有方向性,因此漫反射是恒定的。这可以在图一和图五的图片切片可以看到其材质展示出Lambert效应。【朗伯着色器包含一个n*l因子,但这是照明积分的一部分,而不是BRDF】

    如图六所示许多材质展示了反射效果下降,其他的展示了高光点。这似乎是由于表面着色图像切片的扩散现象。值得注意的是,这与粗糙度有着密切的关系,即光滑表面,即那些具有较高镜面峰值的表面往往具有阴影边缘,而粗糙表面往往有一个峰值而不是阴影。这种相关性可以反射响应曲线也在图7中渲染出来。

    用菲涅耳方程预测光滑表面的入射光:在平射角下,从表面反射更多的能量,较少的折射到表面,从而形成漫射。然而,漫射模型一般不考虑表面粗糙度对菲涅耳折射的影响,所以要么假设表面光滑,要么忽略菲涅耳效应。

    图八:BRDF贴片的三种模型

     

    Oren Nayar模型(1995)预测了粗糙度的增加导致漫反射的变化,然而这种反射模型没有实际测量数据的支持,而且不能表现出漫反射的扁平显示。Hanrahan Krueger模型(1993),来源于次表面散射,还预测了扁平化的扩散的形状,但在边缘没有一个足够强的显示波峰值。与Oren Nayar相反,该模型假定一个完全光滑的表面。Oren Nayar和Hanrahan Krueger的对比如图8所示。

         除了反射峰值,额外的漫反射变化可以在图5中看到,强度和颜色的变化遵守等值线θl/θv,在某些情况下这归因于次表面散射分层,然而分层次表面散射模型一般考虑表面光滑,不产生强反射峰值(ggx的光点)。

    4.2 高光D项观察

    微平面的分布函数D(θH),可以从被测材料的反射响应中的观察,如图6所示.根据反射波峰的高度可以将材料分作2组,可以看做是粗糙度的展示。最高的波峰超过400.从金属铁开始,一旦波峰变平,曲线的其余部分显示了漫反射效果。

    大多数的MERL材质比传统高光模型有更长高光渐变拖尾显示。如图9所示。这种材料的高光反射是典型的光滑,高度抛光的表面,镜面反射峰只有几度宽,高光反射的渐变宽度更多。奇怪的是传统的BeckMan BlinnPhong 和高斯分布几乎相同,既不能代表波峰也不能代表渐变光拖尾。

    图九:高光分布,左图展示了高光波峰值 black =MERL chrome, red = GGX (α = 0.006), green = Beckmann (m = 0.013), blue = BlinnPhong (n = 12000). 右图分别是chrome ,GGX 和beckman效果。

    为了更宽的亮度拖尾渐变效果,Walter et al.(2007) [33]等人提出了GGX分布函数,GGX具有比其他函数更宽的渐变光效果,但是仍未能捕捉光的chrome特性。对拟合材料尾部渐变的重要性在最近的几个模型中也展示出来 L¨ow et al. (2012) [17] and Bagher et al. (2012) [4].这两个模型都采用了一个额外的参数来控制光波峰和光渐变的效果。另一个选择光渐变的的方法是采用第二个更宽的高光反射峰值Ngan [21].

     

    4.3 高光F项观察

    图十:100个MERL材质的归一化Fresnel方程的θd的变化。其反应了θh从1到4度,入射光线被吸收减少,到归一化曲线的θd从45度到80度的形状,虚线表示Fresnel理论方程。

    菲涅耳反射系数,F(θD),表现在镜面反射增加随着光线方向和视线向量变化而变化,预测所有光滑的表面会在平射角方向有100%镜面反射。对于粗糙表面,100%的镜面反射无法达成,但反射率仍将变得越来越高。

    如图十展示了MERL材质的Fresnel曲线,对曲线进行偏移和缩放,比较其响应的整体形状。每个材料显示一些反射系数增加到接近θd=90。这也可以在图1的图像切片的顶部边缘看到。

    值得注意的是,靠近入射平射角附近的曲线的坡度比Fresnel预测的更大,该观察在the motivation of the Torrance-Sparrow (1967) [30] microfacet model 中解释了在较高入射平射角下的“闭角峰值”。要注意因子在微平面模型中平射角处趋于无穷大的时候,无论是在模型和真实世界中,平射角的反射会被阴影效果减少都不是问题。G项代表光照方向的衰减,视线方向的遮蔽和平射角方向系数。G因子代表衰减系数当其与组合使用会带来更好的效果。

    4.4 高光G项观察

    图十一:100个MERL材质的纹理图,左边50个光滑材质,随着入射光线靠近法线在75度左右变大然后变小,右边50个粗糙材质,随着入射光线靠近法线而变大。X轴是入射余角(grazing angles,入射光线与地面的夹角),y轴是反照率albedo.

    在测量数据中很难分离G项,因为他要精确评估D和F项高光从漫反射从分离。然而G项的效果可以间接地反映在光照方向的反照率上。

    反照率是总反射能量和总入射能量之比,从广义上讲,他代表材质表面的颜色、所有波长小于1。反照率也可以来自单一方向的光,比如太阳。这种情况下的反照率变成了直接与入射角方向有关的函数,他的所有角度和波长都要小于1.

    大多数的直射光反照率在70度以前是比较平的如图十一,平射角的反照率与表面粗糙度有关,光滑的材料在75度左右略有增加,随后下降直到90度.粗糙表面会显著得跟着入射余角增加而变大。值得注意的是,总体反照率相当低,只有少数材料的反照率在0.3以上。

    许多粗糙物质所表现出的平射角反射效果其视觉颜色变得更鲜明。对应于模拟g因子的选择对反照率的影响如图12所示,非常光滑和非常粗糙的表面。值得注意的是如果忽略G和,成为无G模式,结果会在反射余角显示过于黑暗。这儿最重要的是G函数的选择对反照率有着深远的影响,反照率反过来又对表面颜色产生影响。

    图十二:几种高光G项模型的反照率图比较,所有的F和D项一样。左图光滑表面a=0.02,右图粗糙a=0.05,NoG 模式去掉了G项和cosθlcosθV项。

    已经开发了几种高光反射模型,其目的是产生更合理的反照率响应曲线[ 30, 29, 19,20, 8, 9,33, 10, 14 ]。对于其中一些,目的是使反照率完全持平,以保持能量平衡。根据图11中MERL数据的反照率图,这不是一个不合理的目标,虽然大部分的材料确实显示了某种入射余角增益。即使这样,一些平射角增益很可能是由于非高光效果。

    有一些简单模型,其源于微平面分布函数D,Smith [29]和随后的 Walter (2007) and Schlick (1994)逐渐的在研究。如图12 Walter 的Smith 的反射率在光滑表面显著增加,这在测量数据中是看不到的。对于粗糙值,这个效应似乎合理。注意,GSmith只具有少量函数的解析形式,通常使用列表积分或其他近似值代替。

    在最近的 Kurt et al. (2010) [14]等人提出经验模型采样了不同的方法和滤波数据及一些自由参数,图表十二展示了a=0.25的 Kurt 模型。α的其他值可以产生宽范围的反照率效应,值得关注的是粗糙模式下Kurt 模型在入射余角处分离。另一种选择是只使用一个Walter的GSmith,甚至简单的GSchlick、或者把G作为一个自由参数。

     

    4.5 布料Fabric

    在MERl采样数据中很多Fabric采样在平射角和Fresnel峰值处都展现出比粗糙材料更强一点高光。如图13所示。

    图十三:几种Fabric的BRDF采样

    平射角效应可以解释为布料通常具有传输纤维特性,可以影响附件物体的轮廓颜色。这也可以解释在布料在平射角的效果比microfact模型预测的要好。虽然有布料有许多非常复杂的材质效果,但是MERL布料材质似乎比模型更简单。

     

    4.6 彩虹

    图十四:color-changing-paint-1,2,3的BRDF图像,顶行:原始数据,底行:相应 的色 度图像被每个像素的1/ max(r, g, b)缩放生成。

    颜色的变化如图十四所示,表现出了一致的的色块颜色在空间(θH,θD)对φD依赖最小的时候。这似乎看起来是一个完全的高光反射,当有很少的反射效果从高光反射峰值分离时。这可以通过调节高光颜色来改变θh 和 θd ,也可以用一张贴图来调整。

    4.7 数据异常

    部分MERL数据的异常在图十五中展示。

    • 一些非常闪亮的材料,特别是金属,呈现出不对称的高光,镜头光晕可能是由于各向异性的表面划痕导致的。
    • 75度以下的数据似乎是推断出的
    • 织物的平射角效应常常有奇怪的不连续性,这可能是由于织物在测量过程中在球体上拉伸并在边缘处起皱。
    • 一些木质在θD变化时呈现高光模式,可能是由于木纹造成的。
    • 次表面散射效果是被烘焙的

    这些都不是挑剔数据或测量过程,而只是提醒不要过度拟合或过度解读数据。这可能是为什么早些时候提出的关于有些材料很难适应的原因。

    图十五:在MERL数据异常,从左到右:钢铁的分光响应呈现不对称的亮点,color-changing-paint1的色彩浓度由数据推断产生,白色织物表现出入射余角处的缩影,fruitwood-241具有展示木纹的高光反射效果。

     

     

    迪士尼原则BRDF

    5.1 设计原则

    在开发新的基于物理反射渲染模型,我们被美术设计师提醒,我们需要我们的光照模型是可控制的视觉正确模型,不一定需要物理正确。正因为如此,我们的理念一直是建立一个有“原则”的模式,而不是严格的物理正确模型。

    这些是我们在实现模型时决定遵循的原则:

    1.应该使用直观而非物理参数。

    2.应该尽可能少地使用参数。

    3.参数应该在合理控制在0到1之间。

    4.参数应该被允许超出他们合理的视觉范围。

    5.所有参数组合应该尽可能的健壮和可信。

    我们详细讨论了每个参数的添加。最后,我们在下面一节中描述一个颜色参数和十个标量参数。

    5.2参数

    • baseColor:表面颜色,通常由texture maps提供
    • subsurface:用次表面控制漫反射颜色
    • metallic: 金属度(0电介质-1金属)这是两种不同模型之间的线性混合,该金属模型没有漫反射成分,有一个带颜色的高光,等同于其基本颜色。
    • specular: 入射高光反射量,代替了折射率。
    • specularTint:给美术设计师让步而设计的朝basecolor的入射高光颜色,平射角的高光色彩仍然是无色的。
    • roughness:表面粗糙度,控制漫反射和高光效果。
    • anisotropic: 各项异性,各项异性的程度,控制高光的宽高比(0 =各向同性,1 =最大各向异性。)。
    • sheen:一种额外的平射角组件,主要用于布料材质。
    • sheenTint:基本颜色的色彩光泽量。
    • clearcoat:第二特别专用的高光页(specular lobe)。
    • clearcoatGloss:控制clearcoat的光泽度,(0 =“光滑”外观,1 =“gloss”的外观)

    如图16所示,给出了每个参数的效果例子。

    图十六:BRDF参数例子效果,每一个参数都是从0到1变化,其他参数恒定不变。

     

    5.3漫反射模型细节

    有些模型包括漫射菲涅耳因子,如:

    其中f(θ)是菲涅耳反射系数[注:从菲涅尔定律,保持Helmholt互通,考虑到两次折射是必要的,一次在表面内部,另一次在表面外。]

    在测量数据的观察中,依赖于我们工作室过去的经验,Lamber模型在边缘经常表现得过暗,增加Fresnel因子可以使其看起来更物理正确一点。

    基于我们的观察,我们凭经验开发了一套漫反射模型,在光滑表面的Fresnel遮挡和粗糙表面附加亮点之间的转换。这种效果的一种可能解释是,对于粗糙表面,光进入和离开微平面表面的特征导致了平射角处的折射增加。在任何情况下我们的美术设计师们都喜欢它,它类似于我们过去的ad-hoc模型,只是现在它更合理,更加物理正确。

    在我们的模型中,我们忽略了漫反射菲涅耳因子的折射率,并且不考虑漫反射入射光线的损耗。我们使用Schlick Fresnel的粗糙度参数近似修改入射余角反射到一个特定的值,而不是默认为0。

    我们的漫反射模型:

    这产生了一个Fresnel反射阴影,使在光滑平面平射角减少了0.5的漫反射率,在粗糙度增加了高达2.5的漫反射率。这似乎给MERL采样数据一个合理的解释,也被美术设计师们所赞同。图十七显示了各种粗糙度下的BRDF图像。

    我们的次表面参数在混合了基础漫反射和HanrahanKrueger subsurface BRDF [11]模型。这对于在远距离物体和平均散射路径长度小的物体上产生次表面现象很有用;然而,它不能完全代替次表面散射,因为它不会把光线投射到阴影或穿过表面。

     

    5.4高光D项细节

      当前流行的光照模型中,GGX是具有最长渐变拖尾效果的。这种模型相当于是被 Blinn (1977) [6] 赞赏效果并符合实验数据的TrowbridgeReitz(1975) [31]模型。然而,这种模型对于许多材料来说仍然没有足够长的渐变拖尾。

    Trowbridge 和Reitz对比了几个分布函数模型和玻璃的测量数据。其中一个来自Berry (1923)的分布函数,有非常相似的形式,但其指数是1而不是2产生了一个更长的渐变拖尾。这表明了其是一个指数变化更广泛的分布模型,可以把它称作:

    Generalized-Trowbridge-Reitz或者GTR模型。

    在这些分布函数中C是一个常量, a是范围在0-1之间粗糙度,a=0表示完全光滑表面,a=1表示完全粗糙或者均匀分布表面。

    图十八:GTR分布函数在不同r值的曲线

    初步拟合结果表明r值在1到2之间效果最典型。有趣的是GTR的r = 3/2相当于Henyey-Greenstein函数的θ = 2θh的时候,θh的倍增可以看作是半球分布到球分布的扩展。

    合理的microfacet分布函数必须被归一化,有效的渲染也必须支持重要采样数据。两者都要求分布函数可半球积分。幸运的是,这个函数有一个简单的闭合形式积分。在附录B中推导了归一化和重要抽样函数以及有效的各向异性形式。

    我们的BRDF模型采用了2个固定的高光叶片(lobes),都使用了GTR模型,主叶片r=2,副叶片r=1,主叶片表示基础材质颜色,并且可以是各项异性或(和)金属性的。副叶片代表了clearcoat层的材料,因此总是各项同性和非金属性的。

    粗糙度,我们发现a=roughness*roughness的时候,粗糙度更能展现出线性空间变化。如果没有这个映射,对于发光材质就需要非常小的或者非直观的参数控制。同时也会导致在介于粗糙和光滑之间的材质会产生一个粗糙的结果。得到的插值结果如图16和19所示。

    代替折射光指数(IOR),我们的高光参数决定了入射光量。这个参数归一化后被重新映射到入射高光范围[0.0, 0.08].这相当于IOR的值在[1.0, 1.8]范围,涵盖了大部分通用材料。值得注意的是参数的中间值对应的是IOR值为1.5,这是很有代表性的值也是我们默认的值。高光参数可能被推到一个更高的IOR值,但是应该小心处理。这种参数的映射大大增加了美术设计师们进行合理材质开发的过程 ,同样的效果放在真实世界中效率会非常低,因为其参数空间非常少。

    对于我们的clearcoat 层。我们使用了固定IOR值1.5.具有代表性的聚氨酯,允许美术家们使用clearcoat参数来缩放图层的整体强度。归一化的参数相当于整体值在 [0, 0.25]之间。这一层有很大的视觉冲击效应,其有相对较小的能量,所以我们不从base层减去任何能量趣弥补他。当该层设置为0 的时候,clearcoat层为无效,也没有成本开销。

     

    5.5高光F项细节

    对于我们而言,Schlick Fresnel比 full Fresnel 近似充分且简单,由近似引起的误差明显比其他因素导致的误差小。

    常数F0代表了正常入射光线角近法线的高光反射,通常是无色的电介质和有色金属。实际取决于折射率IOR,注意高光反射来自于微平面,因此F取决于θd和光线与半角向量的角度,不是入射光线和表面法线的角度。

    菲涅耳函数可以被视为入射角(入射光线靠近法线)和入射余角(入射光线靠近平面)高光的插值。注意当入射光线处于平射角处所有光都被反射后,将呈现出无色状态。

     

     

    5.6高光G项细节

    对于我们的模型,我们采用了混合模式。鉴于 G_Smith 模型对原始高光很有效。我们通常的G项使用Walter推导的GGX模型。但重新映射粗糙度降低了表面光泽。具体而言,为了计算G项,我们线性的将原始粗糙度[0,1]映射到[0.5,1]。注意,我们做这个操作是在粗糙度进行平方操作之前,所以最后的a值是(0.5 + roughness/2)的平方。

    这个映射是基于比较了测量数据和美术大师们的反馈,对于较小粗糙度值 高光有点过热、这个给了我们一个随粗糙度变换的G函数,至少是看起来的物理正确。对于我们的clearcoat高光我们没有使用Smith G函数,只是简单使用固定表面粗糙度为0.25的G_GGX函数,然后发现其实也蛮合理的,美术大大们也能愉快的接受该效果。

     

    5.7分层和参数混合

    一旦我们确定了我们的新模型,我们就需要决定如何将它集成到我们的着色器中。第一个问题是哪些参数需要在空间上变化,答案是所有的;如果一个美术设计师只想简单把两种不同的材料放在一个表面上并在它们之间蒙上mask,那么就需要在所有的参数之间进行插值。此外,mask将被过滤,而且在mask的模糊边缘处应该要使材质看起来正确。

    我们的设计原则的是使所有的参数标准化,且至少是线性空间感知的,即材料通常以非常直观的方式进行插值。如图19所示。

    一旦我们意识到可以直接插值,我们就想知道我们是否可以通过mask实现所有的空间变化。这个方法是美术设计师将会使用一个材质预置列表来使用mask进行简单的混合。结果证明非常好用,大大简化了工作流程。提高了材质的一致性。并使我们的着色器更有效率、如图20所示的着色器UI。

    图十九:在两种完全不同的材质间(光泽的金属和蓝色塑料)进行插值。

    图二十:展示了material Layer的Shader编辑器截图,可变化的mask展示了Shadermodel线性空间下的映射,是典型的纹理映射。

    6 Wreck-It Ralp模型的开发经验

    我们用Wreck-It Ralph模型开发了“Principled Layers”并且使用在几乎所有的材料(除了头发材质,头发仍使用Tangled)上。如图二十一可以看到各种各样的材质效果。注意,单独的法线通常被用在高光组件中用来制作地面,地毯和其他颗粒材质上的火花效果

    图二十一:Wreck-It Ralph模型效果展示

    结合我们的新材料模型,我们还引入了新的采样区域和基于图像的灯光,这点对于使确定的材料看起来更好很关键;如果你制作一个看似有光泽的材料,用点光源去渲染它,渲染效果将是一个小亮点,但是如果允许灯光师调整材料属性,例如增加粗糙度来伪装区域光的效果,破坏整个基于物理形式的渲染。好消息是灯光师喜欢可控的区域光和柔性,也很喜欢材质有着一致响应的特性。值得注意的是新的材料模型在我们之前的ad-hoc版本切换到新的采样光后是很激进的ShadingModel。因为各自反射模型拥有自己的采样光消耗是很高的。

    基于Wreck-It Ralph模型的成功经验,我们将展示一个正在使用或者计划使用的没有修改的着色器模型。

     

    6.1 开发过程

    一个优点是使用了简单BRDF使我们简化了交互式材质编辑器的开发。我们的开发人员开发渲染了geometry buffer(g-buffer),包含了法线,ObjectID,和LayerMask信息。用这些通道可以快速执行基于图像的光照计算同时允许所有的BRDF参数可以被交互式的编辑。美术设计师们可以实时旋转IBL,可以通过调整整体参数和层来看效果。

    另一个优点是使用统一模型,包含了由材质设计师保存的简单的材质库的预设。可以从材质库中选取一种材料,并添加到着色器中作为附加层,然后与Mask混合。因此Layer可以像Photoshop那样快速构建。

    要充分判断一个材料,从各种角度去进行光照分析至关重要。作为切换到我们新材质模型的一部分,我们开始使用不同的IBL和各种旋转角度的光照和元素来验证所有的材质模型。

    我们的新着色器系统的最终结果是大大提高了视觉开发的生产力,缩短了新美术设计师的培训时间,并保证了更高质量的结果。值得注意的是,我们大部分的视觉开发设计师之所以能够快速完成效果,是因为缺少光照中材料的“re-do”操作。这是史无前例的。

    6.2 光照

    如前所述,需要使用不同的光照来处理验证新的材料模型。这需要很大的学习区间。即在不过分损害基于物理渲染模型的情况下,重新引入易于美术设计师控制工作量是一项很大的挑战。

    光照里边最大的挑战是使用移动的IBLs进行光照,大多数的IBL被用作灯光链接到特定具有距离的元素,这比以前的开发环境得到大幅度提升改进,主要由于大幅度忽略了材质特性。之后区域灯也很受欢迎。

    以前灯光师最大的挑战是处理实时光的强度和衰减。我们最终开发了一个非物理衰减的控制,通过使灯光变得更遥远并且在距离为18的达到理想曝光的时候自动调整光强。但是控制光照的强度和衰减对于灯光师仍是一个挑战。

    光照的另一个挑战是镜面高光很多都需要计算色调映射。高光材料上的亮度可以简单的就达到数百个,这对对于GPU裁剪显得很苛刻。在不同的位置给每个颜色通道引入分类裁剪,并强制中心点颜色为白色。我们开发了一个新的全局色调映射来处理,它保留了大部分的颜色范围值,并且引入了颜色和对比度等。我们有一个默认的设置在多数情况下是合理的,但在颜色分级的时候需要调整一下最终的参数值。

     

    6.3 未来计划

    目前最大的问题是当前缺乏可直观控制的次变散射模型,这方面的关键是BRDF的整合。在理想情况下,BRDF和次表面模型有一个匹配度,这样才较远距离的物体就可以使用BRDF模型来得到相同的效果。此外,设计师应该能够自由的增加次表面散射的插值效果,在不改变曝光的情况下,只是漫反射的形成会变。

    我们会更进一步研究布料的反射模型,我们可以使用捕捉反射数据来添加一个特殊的着色器来精细的渲染复杂的布料材质。但是我们更想研究更加直观和广泛的布料渲染模型。但是目前还没有实现的效果,但是以后会有的。

    我们也收到添加彩虹模型的请求,这一个和前面讨论那样添加高光颜色变化一样简单。

    致谢:

    ...thanks all!

     

    ...

    B.GTR分布函数

    B.1 微平面分布综述

    一个合理的microfacet分布函数在半球坐标的归一化投影下值为1.

    或者半球坐标系表达:

    对于重要的采样,很方便的选择归一化的pdfh = D(θh)cos θh。注意 pdfh是相对于半角矢量的密度,对光照方向矢量的密度为:

    为了再半球坐标上生成采样数据,pdf将会被分割成球形组件,pdfh = pdfθh pdfφh .对于各项同性分布的这种分级是微不足道的,该分布不依赖于n φh 和pdfφh =1/2PI,

    对于各项异性,分解是通过集合θh 来得到:

    Pdf的每个组件被整合到cdf,通过倒转该形成相应的采样功能:

    给两个采样函数统一和随机的变量ξ1 和 ξ2, θh 和φh可以被计算和在法线n,切线x ,副法线y 组成的坐标系下投影到到半角向量h。最后给出一个v向量,l可以被h和v的叉乘计算。

    B.2 GTR

    从上面的推导,标准的GTR 分布函数可以描述为:

    这种分布在γ > 0的时候是有效的,不管怎样γ = 0时 存在一个奇点,以极限γ → 1产生这种交替形式:

    对γ = 3/2 和γ = 2的简化形式,后者相当于GGX:

    形成各项异性分布,各种表面粗糙度相关的φ被,γ = 2的结果如下:

    替换这些向量恒等式

    在等式(10)中产生一个有效的替换形式:

    未来,tan φh从(11)到 sin φh and cos φh,避免因φH坐标的特殊处理,也让H来计算更直接:

    注意:h’是投影后的半角向量,r是归一化因子可以被忽略或取消。

     对任意的γ值,各项异性分布的归一化,不幸的是 没有一个闭合形式。

     

    附录

    各项异性高光细节:

    原始注释省略了,细节参数如下:

    0.9因子限制的长宽比为10:1。

     

    光泽细节

    原始光泽细节注释省略了,根据4.5章节的纺织物采样描述的观察,漫反射+高光反射的模型在BRDF的各种模式中占有主导地位。这和Fresnel因子很相似。这个形状和fresnel也很像。我们的模型使用了额外的BRDF 叶片(lobe),采用了 Schlick Fresnel 模型,,并且可以用sheenTint 参数调节基础颜色的色彩朝向。

    再谈高光G

    Heitz最近发表的文章深入分析了microfacet shadowing,Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs, JCGT 2014.Heitz提出了“weak white furnace test”验证了基于物理的mask功能的合理性并且展示了它。已知的函数只有 Smith shadowing model [29, 33] 和the V-cavity model比较合理。尽管后者可能不太逼真。

    基于Heitz的分析,我们已经消除了我们的Smith G映射原始高光的ad-hoc版本,对于金属,结果显然要好得多,对一般材料来说尤其如此。特别用正确光源渲染某些全局光照GI环境时,看起来对很可能对Walter模型相关的光滑材质导致在MERl测量数据在入射余角处的错误。Heitz也从Smith公式推导出了正确的各项异性公式。我们忽略了一个细节。

    对于clearcoat,我们仍然使用各项同性的GTR1.0的叶片处理拖尾,并公认ad-hoc G因子。这不是意味着阴影和mask代表一个看似合理的物理正确,相反,它代表了一个半薄透明的层,它可能包含了多个反射和透射事件。而我们目前的公式对各种材料都很有效。也就是说,包含了大部分效果的物理模型是比较受欢迎的。

    Over!

     

    致谢:

    ...thanks all!

     

     

     

     

     

    References

    [1] Michael Ashikhmin. Distribution-based brdfs. Technical report, 2007. [2] Michael Ashikhmin, Simon Prem˘oze, and Peter Shirley. A Microfacet-Based BRDF generator. In Sheila Hoffmeyer, editor, Proceedings of the Computer Graphics Conference 2000 (SIGGRAPH- 00), pages 65–74, New York, July 23–28 2000. ACMPress.

     [3] Michael Ashikhmin and Peter Shirley. An anisotropic Phong BRDF model. Journal of Graphics Tools: JGT, 5(2):25–32, 2000.

     [4] M. M. Bagher, C. Soler, and N. Holzschuch. Accurate fitting of measured reflectances using a shifted gamma micro-facet distribution. Computer Graphics Forum, 31(4):1509–1518, 2012. 19

    [5] P. Beckmann and A. Spizzichino. The scattering of electromagnetic waves from rough surfaces. MacMillan, 1963.

    [6] James F. Blinn. Models of light reflection for computer synthesized pictures. volume 11, pages 192–198, July 1977.

    [7] R. L. Cook and K. E. Torrance. A reflectance model for computer graphics. Computer Graphics, 15(3):307–316, 1981.

    [8] Arne D¨ur. An improved normalization for the Ward reflectance model. Journal of graphics, gpu, and game tools, 11(1):51–59, 2006.

    [9] Dave Edwards, Solomon Boulos, Jared Johnson, Peter Shirley, Michael Ashikhmin, Michael Stark, and Chris Wyman. The halfway vector disk for brdf modeling. ACM Trans. Graph., 25(1):1–18, January 2006.

    [10] David Geisler-Moroder and Arne D¨ur. A new Ward BRDF model with bounded albedo. Comput. Graph. Forum, 29(4):1391–1398, 2010.

     [11] Pat Hanrahan and Wolfgang Krueger. Reflection from layered surfaces due to subsurface scattering. In Proceedings of the 20th annual conference on Computer graphics and interactive techniques, SIGGRAPH ’93, pages 165–174, New York, NY, USA, 1993. ACM.

     [12] Xiao D. He, Kenneth E. Torrance, Francois X. Sillion, and Donald P. Greenberg. A Comprehensive Physical Model for Light Reflection. In Computer Graphics (ACM SIGGRAPH ’91 Proceedings), volume 25, pages 175–186, July 1991.

    [13] Csaba Kelemen, Laszlo Szirmay-Kalos, and L´aszl´o Szirmay-kalos. A microfacet based coupled specular-matte brdf model with importance sampling. Eurographics Short Presentations, 2001.

    [14] Murat Kurt, L´aszl´o Szirmay-Kalos, and Jaroslav Kˇriv´anek. An anisotropic brdf model for fitting and monte carlo rendering. SIGGRAPH Comput. Graph., 44(1):3:1–3:15, February 2010.

    [15] Eric P. Lafortune, Sing-Choong Foo, Kenneth E. Torrance, and Donald P. Greenberg. Nonlinear approximation of reflectance functions. In Computer Graphics (ACM SIGGRAPH ’97 Proceedings), volume 31, pages 117–126, 1997.

    [16] Robert R. Lewis. Making Shaders More Physically Plausible. In Fourth Eurographics Workshop on Rendering, number Series EG 93 RW, pages 47–62, Paris, France, June 1993.

    [17] Joakim L¨ow, Joel Kronander, Anders Ynnerman, and Jonas Unger. Brdf models for accurate and efficient rendering of glossy surfaces. ACM Trans. Graph., 31(1):9:1–9:14, February 2012.

    [18] Wojciech Matusik, Hanspeter Pfister, Matt Brand, and Leonard McMillan. A data-driven re- flectance model. ACM Transactions on Graphics, 22(3):759–769, July 2003.

    [19] L´aszl´o Neumann, Attila Neumann, and L´aszl´o Szirmay-Kalos. Compact metallic reflectance models. Computer Graphics Forum, 18(3):161–172, September 1999. ISSN 1067-7055.

    [20] L´aszl´o Neumann, Attila Neumann, and L´aszl´o Szirmay-Kalos. Reflectance models by pumping up the albedo function. In Machine Graphics and Vision, pages 3–18, 1999.

    [21] Addy Ngan, Fr´edo Durand, and Wojciech Matusik. Experimental analysis of BRDF models. In Kavita Bala and Philip Dutr´e, editors, Eurographics Symposium on Rendering, pages 117–126, Konstanz, Germany, 2005. Eurographics Association. 20

    [22] Ko Nishino and Stephen Lombardi. Directional statistics-based reflectance model for isotropic bidirectional reflectance distribution functions. J. Opt. Soc. Am. A, 28(1):8–18, Jan 2011.

    [23] Michael Oren and Shree K. Nayar. Generalization of lambert’s reflectance model. In SIGGRAPH, pages 239–246. ACM, 1994.

    [24] Romain Pacanowski, Oliver Salazar Celis, Christophe Schlick, Xavier Granier, Pierre Poulin, and Annie Cuyt. Rational brdf. IEEE Transactions on Visualization and Computer Graphics, 99(PrePrints), 2012.

    [25] Bui-T. Phong. Illumination for computer generated pictures. Communications of the ACM, 18(6):311–317, June 1975.

    [26] Fabiano Romeiro, Yuriy Vasilyev, and Todd Zickler. Passive reflectometry. In Proceedings of the 10th European Conference on Computer Vision: Part IV, ECCV ’08, pages 859–872, Berlin, Heidelberg, 2008. Springer-Verlag.

    [27] Iman Sadeghi, Heather Pritchett, Henrik Wann Jensen, and Rasmus Tamstorf. An artist friendly hair shading system. In ACM SIGGRAPH 2010 papers, SIGGRAPH ’10, pages 56:1–56:10, New York, NY, USA, 2010. ACM.

    [28] Christophe Schlick. An Inexpensive BRDF Model for Physically-Based Rendering. Computer Graphics Forum, 13(3):233–246, 1994.

    [29] B. Smith. Geometrical shadowing of a random rough surface. IEEE Trans. Ant. and Propagation, AP-15(5):668–671, September 1967.

    [30] K. Torrance and E. Sparrow. Theory for off-specular reflection from roughened surfaces. J. Optical Soc. America, 57:1105–1114, 1967.

     [31] S. Trowbridge and K. P. Reitz. Average irregularity representation of a rough ray reflection. Journal of the Optical Society of America, 65(5):531–536, May 1975.

    [32] Bruce Walter. Notes on the Ward BRDF. Technical Report PCG-05-06, Cornell Program of Computer Graphics, 2005.

    [33] Bruce Walter, Stephen R. Marschner, Hongsong Li, and Kenneth E. Torrance. Microfacet models for refraction through rough surfaces. In Proceedings of the Eurographics Symposium on Rendering, 2007.

    [34] Gregory J. Ward. Measuring and modeling anisotropic reflection. In Edwin E. Catmull, editor, Computer Graphics (SIGGRAPH ’92 Proceedings), volume 26, pages 265–272, July 1992.

    [35] L. B. Wolff, S. K. Nayar, and M. Oren. Improved diffuse reflection models for computer vision. International Journal of Computer Vision, 30(1):55–71, October 1998.

     

     

     

    翻译@gardonguo

    各项异r=2,标准Disney-GGX模型 金属材质

    各项异性r=1,渐变拖尾更长。非金属材质


    展开全文
  • unity-基于物理渲染

    2020-04-10 11:43:29
    Lambert、Phong、Blinn-Phong光照模型都是经验模型,基于物理渲染技术(Physically Based Shading,PBS)对光和材质之间的行为进行更加真实的建模。 反射探针(Reflection Probes):在场景中的特定位置上对整个...

    Lambert、Phong、Blinn-Phong光照模型都是经验模型,基于物理的渲染技术(Physically Based Shading,PBS)对光和材质之间的行为进行更加真实的建模。

    反射探针(Reflection Probes):在场景中的特定位置上对整个场景的环境反射进行采样,并把采样结果存储在每个探针上。当物体经这些探针时,将反射结果传递给物体使用的反射纹理,若存在多个探针,进行插件后得到平滑渐变的反射效果。可模拟相互反射

    全局光照

    全局光照:模拟光线是如何在场景中传播的,不仅会考虑那些直接光照的结果,还会计算光线被不同的物体表面反射而产生的间接光照。

    在使用PBR后,当渲染表面上一点时,我们需要计算该点的半球范围内所有会反射到观察方向的入射光线的光照结果,这些光就包括直接关照和间接光照。unity使用了实时+预计算的方法来模拟场景中的光照。实时光照用于计算那些直接光源对场景的影响,当物体移动时,光照也会随之发生变化,而实时光照是无法模拟光线被多次反射的效果,通过使用预计算光照的方法也可以得到实时的要求。

    预计算光照包括我们常见的光照烘焙,光源对场景中静态物体的光照效果提前烘焙到一张光照纹理中,然后把纹理贴在物体表面,来得到光照效果,光照纹理不仅存储了直接光还有间接光的结果-----静态。

    预计算实时全局光照

    伽马校正:

    HDR:(High Dynamic Range)高动态范围,相对应的地动态范围(Low Dynamic Range,LDR),动态范围是最高和最低亮度值之间的比值。

    https://blog.csdn.net/yangxuan0261/article/details/88749969?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1

     

     

     

     

     

    展开全文
  • 基于物理渲染技术(PBR)系列一

    万次阅读 多人点赞 2017-03-19 21:54:20
    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏...PBR,或者用更通俗一些的称呼是指基于物理渲染(Physically Based R...
  •  本文由@浅墨_毛星云 出品,首发于知乎专栏,转载请注明出处   文章链接: https://zhuanlan.zhihu.com/p/53086060   先放出PBR知识体系的架构图:   图很大,建议下载到本地放大查看。...
  • 基于物理渲染 – 理论篇

    千次阅读 2017-04-17 11:13:32
    基于物理渲染,英文缩写PBR (physically based rendering),是一个渲染技术的集合,包含多种或多或少的利用物理来更真实的模拟现实世界的渲染技术,基于物理渲染的目的是利用更接近实际物理理论的光照计算,生成...
  • 基于物理渲染指的是基于真实世界中光照的物理特性而建立的一种光照算法。在过往的游戏模型制作过程中, 美术人员可能将材质受到光照后的效果同时烘焙在贴图上。通过传统的光照模型计算出来的材质效果,在预设光照环境...
  • 基于物理渲染从理论到实现.第二版 Physically.Based.Rendering,.Second.Edition.From.Theory.To.Implementation
  • 学习物理渲染的好东东,全名基于物理渲染从理论到实现.第二版。
  • PBR基于物理渲染(2to2)

    2017-04-08 17:16:12
    Physically Based Rendering 基于物理渲染理论中文版
  • PBR基于物理渲染

    千次阅读 2016-12-07 11:50:41
    什么是基于物理渲染(PBR)? 传统3D材质制作方法是基于艺术家的手艺的,由美术根据个人评估绘制Diffuse贴图调整颜色后进行渲染。好处是画成什么颜色就是什么颜色,制作流程简单修改直观,缺点则是质量不稳定,...
  • 基于物理渲染Physically-Based Rendering的最终版本,或许也有待提升,运用了fragement shader,看了就知道 基于物理的、保能量的渲染模型可以很容易地建立出在不同光照环境下都接近真实的材质来。 而unity5也提出了...
  • 基于物理渲染的基础理论

    千次阅读 2015-09-09 09:27:49
    基于物理渲染的优点 很容易就可以作出真实和照片级的效果。 同一配置可以适用于在不同HDR光照环境下。 接口简单而直观,都是基于世界真实的参数。(如粗糙度,金属度,等等)。 不需要美术去提供经验性的...
  • unity3d 基于物理渲染的问题解决

    千次阅读 2015-02-24 23:38:33
    最近1个月做了unity 次世代开发的一些程序方面的支持工作,当然也是基于物理渲染相关的,主要还是skyshop marmoset的使用吧,他算是unity4.x版本 PBR的优秀方案之一了 但在使用以及性能上,还是多少有些坑和不足,...
  • unity shader:基于物理渲染

    千次阅读 2018-01-08 22:54:05
    对于十分逼真的光照效果,就必须使用基于物理的光照模型。 BRDF定义:表示双向反射分布函数,通常用f(I,V)来表示,其中I代表光线入射方向,V代表光线观察方向,并且当沿着法线方向旋转I或者V时,对应的BRDF不变,就表明这...
  • PBR——基于物理的实时渲染

    千次阅读 2017-02-18 12:41:00
    简介PBR,或者用更通俗一些的称呼是指基于物理渲染(Physically Based Rendering),它指的是一些在不同程度上都基于与现实世界的物理原理更相符的基本理论所构成的渲染技术的集合。正因为基于物理渲染目的便是...
  • 基于物理渲染 – 实现篇

    千次阅读 2017-04-17 11:30:40
    在上一个教程里我们为基于现实物理渲染打下了基础,在这个教程里我们将会着重介绍如何将前面讲到的理论转化成一个基于直接光照的渲染器:比如点光源,方向光和聚光灯。让我们一起回忆一下前面的教程推导出来的最终...
  • 本文由@浅墨_毛星云 出品,首发于知乎专栏,转载请...按照既定规划,本文将主要关注基于物理渲染的核心理论与渲染的光学原理,以在整个系列中起到理论支柱的作用。 从本文内容而言,只有透过渲染现象看到光与真...
  • 序:说了几天的Unity,今天回到渲染吧,毕竟图形学才是我的最爱。... PBR(Physicallly-Based-Rendering), 基于物理渲染,有时也叫PBS(Physicallly-Based-Shading),(其实Unity自带的Stand...
1 2 3 4 5 ... 20
收藏数 27,419
精华内容 10,967
关键字:

基于物理的渲染