如何评价光栅化渲染中光线在场景中的折返?
扫描二维码
随时随地手机看文章
对于那些想要获得现实感的艺术家或开发人员而言,一款可以模拟光在场景中发生相互作用(即光反射、光吸收、光折射等)的渲染器(具有创建视觉效果的功能)十分重要。这就需要在处理每个像素时,对场景有一个全方位的了解,这里不是指最常见的渲染技术,而是需要实时的光栅化渲染器。
出版物:VRTech
作者:PVR演示工程主要应用工程师Mathieu Einig
例如,在光栅化中渲染像素时,以下数据可用:
? 单点表面数据 (如,点的位置、颜色)
? 一些通用的全局值(如,3个最近的光源位置、当前时间、摄像机方向)
? 一些纹理
但仅有这些可用的数据,我们会发现,评估光线如何在场景中折返仍是非常困难。有一些方法可以评估近似的值,但却往往相当低效,且渲染质量差,经常让最终用户很失望 (近似值使用的无效方法降低了帧率)。同时,这个方法错综复杂,让开发人员十分为难。
图1:没有任何环境(左)的渲染生成的图像看起来像人造图像。有了环境(右)的图像看起来更自然,且有软阴影、反射和光反射。
这是光线追踪发挥作用的地方:当渲染像素时,发送光线到场景中来探测周边环境。如果当前点和光源之间的光线被一些几何图形阻断,便会产生一个阴影。如果使用光线匹配附近物体的颜色,便会获得反射光。传统的渲染器中未实现的图像效果在其设计中开始变得符合逻辑,且在执行时变得很简单。
是的,除了所需的处理能力,一切事情皆十分简单。其优势是明显的,但为何光线追踪却不常使用呢?原因很简单:向场景发射光线并且找到与几何图形的交集非常复杂,计算量大。这就是为何,历来只在电影的离线渲染器中使用光线追踪。
使光线追踪成为现实
PowerVR Wizard光线追踪GPU的发布打破了陈规。PowerVR GR6500是Wizard系列第一款GPU,且2瓦特内每秒能处理1亿条光线,这比现有的解决方案更具效率,甚至高出了一个数量级。
过去,有人则声称使用其硬件已解决了实时光线追踪,但后来都以失败告终。PowerVR Wizard为何能脱颖而出呢?首先,光线追踪的功能已紧密集成到实时渲染API OpenGL ES和Vulkan中,这意味着,开发人员不需要切换到一些效果不佳的专有渲染器中。此外,光线追踪可以与光栅图像混合,这样,在现有的游戏和应用程序中集成新的追踪效果便非常简单。但最重要的是,它是完全可编程的。之前的硬件光线追踪解决方案通常只涉及一组有限的预定义效果,如基本的反射和折射、或硬阴影。而有了这个解决方案,光线追踪将成为一个工具,允许将一个全新的范例无缝集成到现有的引擎中,让开发人员以任何他们想要的方式使用,甚至是无人尝试过的方式。
图2:拥有一个完全可编程的光线追踪系统使开发人员可以采取任何他们想要的渲染方式
新模式将产生新的可能性
最近,我们的光线跟踪技术作为光预处理工具,集成在Unity游戏引擎中,这是模式转换一个很好的案例:使用全新的更佳的方案来解决旧有的问题,即便这些问题已经得到满意的解决。
光照贴图,即在创建3D环境时预先对复杂的光线相互作用进行计算 (用于游戏或架构视觉化),历来是一个非常漫长而乏味的过程。对场景几何图形或照明的每次更改都必须遵循几分钟到几小时的等待时间,使创作者很难得到正确的结果。但是使用光线追踪的迭代特性便可以解决这个问题:用户可以得到即时但粗糙的结果,随后,粗糙的结果越来越精细。这意味着,如果出现错误,它还可以及时纠正,节省了大量的时间。
ImaginaTIon与多个行业领先的中间件供应商合作,以确保可以解决传统的“鸡和蛋的问题”,并通过将光线追踪功能纳入这些引擎中,使应用程序中能包涵光线追踪的特性,这样使得开发人员更加便利。
除了明显改善光照质量,还可以以不同的方式来使用光线追踪。例如,在虚拟现实(VR)中,光线跟踪在渲染过程的第一阶段便开始对抗透镜畸变,而不是像光栅化一样,在渲染最后阶段移动和拉伸像素。这样处理效果会更好,每像素发送的光线数量则取决于帧像素的位置,这意味着,实施漏斗状渲染则非常简单,它追随人眼,绘制人眼所见的最详细的图像,并不断精密化。
随着虚拟现实愈发成熟,开发人员开始寻找方法来进一步提高现实存在感。物理和环境感知声音的设计已成为一个改进的重要目标区域。例如,回波仿真可以帮助用户获得额外的空间意识,提高虚拟现实体验的可信度。模拟环境中的声音交互与渲染光线十分相似,且同样的光线跟踪技术可以用于以更低的处理成本来提升沉浸感。