最近安装了Mars2020版本,光线追踪系统上线。对大家来说,光线追踪是一个既熟悉又陌生的词汇。说熟悉,是因为可能大家其实都听说过;说陌生,光线追踪到底是什么,可能除了从事计算机图形图像的的专业人员,其他了解的人并不多。

在这里,首先我们需要了解一下全局光照的概念,以及全局光照跟光线追踪和环境光遮蔽(ambient occlusion也就是AO)之间的关系。

全局光照(Global Illumination,简称 GI),是指既考虑场景中来自光源的直接光照,又考虑经过场景中其他物体反射后的间接光照的一种渲染技术。而光线追踪(Ray tracing)和环境光遮蔽(ambient occlusion)只是全局光照的一个实现方向。

什么是光线追踪?简单点说,当你可以环顾四周,找到被光线照亮的物体,沿着到达视点的光线反方向进行追踪,就是光线追踪。在真实世界中,我们看到的 3D 物体被光源照亮,且光子在到达观众眼睛之前,可以从一个物体反射到另一个物体。光线可能会被某些物体阻挡,形成阴影。或可能会从一个物体反射到另一个物体,比如当我们看到一个物体的图像反射在另一个物体表面时就是这样。光线穿过透明或半透明物体(如玻璃或水)时会发生折射。光线追踪通过从我们的眼睛(或“观景式像机”)反向追踪光线捕捉这些效果。

那什么是环境光遮蔽(ambient occlusion也就是AO)?官方解释为通过计算光线在物体上的折射和吸收,在受影响的位置上渲染出适当的阴影,添加渲染深度,从而进一步丰富标准光照渲染器的效果。简单点说就是这种效果在弯曲处和凹陷处可见,但在平面和凸面上不可见,因为它们不会阻挡彼此的光线。这种效果非常重要,因为没有它的存在将会令场景缺乏层次感。光遮蔽并不是真实的现象,而是3D应用程序用来进行光线追踪,创建阴影错觉的一种光照技术。

至于其他几个概念金属反射和透明以及天空光就不难理解了,但是我个人认为我们在定义这些概念的时候不够准确。首先金属反射,不管是材质里的金属反射还是光追开启后的金属反射,都属于物体的物理反射属性,到底是叫反射还是金属反射建议认真考究一下。其次是光追透明属性设置,一个物体的透明程度固然会影响本身的反射强度,但是我们透明设置里的一些参数调整后对反射效果的影响要远远大于对透明程度的影响,更像是一种折射的效果。最后是天空光,要模拟真实光照效果的话是少不了天空光的,室内场景可以补光模拟,室外场景天空光效果不好,可控参数很少,培训时说这块还没有开发完,我们期待后续效果。

原理了解后再聊一下使用经验,从一开始培训Mars2020版本到公司组织集体学习培训,我脑子出现最多的一个词就是“联动”当我们打开光线追踪面板时里面的参数不要单独一项去调整,彼此间应该是相互联动的去调整,多个参数同时调整控制效果,同时光追是整体效果调整类似VRAY渲染器,长期使用后可以总结出几个初级中级高级不同效果的参数固定设置,然后场景里材质灯光配合进行调整。

到现在为止具体使用次数不超过三次,因为最近上门宣讲和售后任务比较多,同时高配置电脑也没有分配到手。浅谈个人理解与感受,Mars2020光追的上线对画面质量确实有很大提升,希望我们百尺竿头更进一步。