现实世界环境中虚拟对象的经过光线追踪的反射的快速产生
方法
技术领域
本申请是有关执行光线追踪方法,尤指一种在较低运算复杂度下改善执行光线追踪的方法。
背景技术
扩增实境(AR)是一种在实体现实世界的环境现场观看的技术,AR的元素是由计算器产生的图像来扩增。关于扩增的对象的信息重迭加注在现实世界的上。扩增传统上是实时并且具有环境的元素的视觉内容描述。有了先进AR科技的帮助,有关使用者的周遭现实世界的信息变成交互式并且可数字操纵的。因为AR将数字世界的组件带入了个人感知的现实世界,使用者会体验与扩增实境互动取决于扩增的对象逼真的程度以及它们的真实环境的整合的程度。
在公知技术中,AR中使用的图形是基于传统光栅科技。然而,在速度与质量的间取舍后所得到的光栅图形是非常平庸的,因为对AR来说速度比质量重要。AR的视觉内容缺乏必要的逼真元素像是反射,折射,渗色,渗色,焦散等等。在公知技术中,高质量计算器产生的真实效果可以在电影工业中看到,这样的效果是通过使用光线追踪计算器产生的图像才能达到。
光线追踪是一种用来产生影像计算器图形技术,其通过追踪照明的光线并且模拟光线遇到虚拟对象所产生的效果。光线追踪背后的概念在于通过解出这些点的可件性,来找到运算光线与各种几何态样的交错在数学上的解。这项技术可以产生高度的视觉拟真。在低阶的光线追踪中,光源仅用来照明场景中的对象。
通过高阶的光线追踪可以产出更逼真的成像,叫做路径追踪,其是基于全局照明。全局照明不仅将直接来自光源的光考虑进去,也将场景中由其他表面反弹回去的后续光考虑了进去,无论是否该表面会反射。
路径追踪,是指蒙地卡罗(Monte Carlo)光线追踪,通过随机追踪可能的光路径的样本来渲染三度空间场景。对影像中任何给定的像素重复取样,终究会将样本的均值收敛至渲染方程序的正解,使得这成为目前存在的物理上最正确的三度空间图像的渲染方法。路径追踪能产生忠于实境的影像,并且跟照片无法区别(例如阿凡达电影)。视觉质量比光线追踪更高,但是要花费更高出许多的运算能力。
公知技术的光线追踪中最耗时的任务是加速结构的遍历,以及光线与多边形的间的交错测试。每一个单一光线穿过加速结构(例如K树或BVH树),搜寻候选交错的多边形。这些遍历变成主要耗费时间的行动,它们一般来说会花费60%-70%影像产生时间。接着,所有与搜寻相联的候选多边形必须经过直线-三角形交错测试,以决定沿光线的路径最早的碰撞发生的地方。
公知技术光线追踪方法的配置是绘示于图1。第一,加速结构必须被建构起来(步骤10)。建构是完成作为前置处理步骤,并且会花费比产生单一影像多很多的时间。一般来说,建构时间取决于场景大小。越大的场景,建构时间越久。每一个场景中主要的修改都会需要加速结构的重新建构。内存大小一般来说会因为加速结构而加倍。当每一个光线穿越加速结构来搜索光线与各种场景对象的间的交错时,光线的追踪(步骤12)是基于加速结构的庞大遍历(步骤11)。最后结果的交错点被光照,加上纹理,加上阴影(步骤13),并且经过集合的至影像像素。
公知技术的光线追踪中加速结构的使用有两个主要的缺点;(i)每当场景改变时,它们必须重复地重建场景,以及(ii)在这些结构间穿梭是相当耗时。这两个缺点都与AR对于实时性的需求相抵触。
因此,本申请的主要目的在于加速全局照明光线追踪的性能至实时的程度,使得其适用于AR技术领域。
本申请的另一目的是用来降低光线追踪的运算复杂度。本申请的另一目的是用来降低光线追踪的功耗。本申请的另一目的是用来通过消费者运算器件的处理程度致能全局照明光线追踪。
发明内容
本申请的一些实施例是应用于扩增实境(AR)与虚拟现实(VR)两者。AR是一种在实体现实世界的环境现场观看的技术,AR的元素是由计算器产生的图像来扩增。VR将现实世界以模拟的世界取代。扩增传统上是实时并且具有环境的元素的视觉内容描述。使用者会体验与互动会直接受到AR与VR的逼真程度的影响。
在公知技术中,由于光栅图像的高速,扩增的对象的成像是通过传统光栅图像来产生。有了先进AR科技的帮助(例如加入计算器视觉与对象辨识),有关用户的周遭现实世界的信息变成交互式并且可数字操纵的。有关环境的信息以及其对象是重迭加注在现实世界的上。
然而,普通光栅图形科技的影像质量以及与现实世界的环境的视觉内容是中庸的。计算器所产生的想要的高质量逼真可以在线今的电影工业中看到,其通过使用了全局照明光线追踪来达成,也就是路径追踪。不幸地,这项技术并不适合用于AR,因为其非常高的运算复杂度,会造成长产出时间并且需要昂贵的运算农场。
本申请教示一种创新的方法可以提供实时路径追踪,具有降低的运算复杂度与功耗,并且适用于消费者运算器件的处理程度。本申请的方面是致能聚焦在经过选取的对象上,产生对象的相片逼真般的影像,拟真的迭加在预设环境上。
在本申请的实施例中,公知技术的加速结构是由一新颖的器件所取代-动态排列结构(Dynamically Aligned Structure,DAS)。DAS是为一种用来于大群的光线中执行次级光线与场景形状的间的交错的器件,其获得高速与降低的运算复杂度。
图2绘示了本申请的路径追踪的阶段。与公知技术(图1)的间的主要区别在于图2少了加速结构。这些结构由DAS器件21所取代了。重新建构没有了前置处理,以及加速结构的遍历。
DAS是为经过排列的光线的投影,被使用来承载相联于存在碰撞点的次级光线。并非如公知技术所知道的,为每一个单一碰撞点(或在小封包的光线中)个别照射次级光线,而是我们整体地一起做它,以节省费用。
附图说明
此处所述的本申请,是仅以非限制性示例的方式,协同参考附图与图式,其中相同的组件以相同的标号标示。请了解这些附图仅提供关于本发明一般实施例并非因此作为本发明范围的限制:
图1:公知技术的光线追踪的框图;
图2:本申请的光线追踪的框图;
图3:公知技术的次级光线在光线/对象交错点产生全局照明;
图4:DAS的基本机制;
图5:多个DAS投影以随机改变的方向照射;
图6:通过逐次的DAS投影来产生碰撞点;
图7a:开场场景包括两个三角形以及两个主要碰撞点(HIP);
图7b:向碰撞点照射DAS光线的前期区段;
图7c:DAS光线的主要区段其承载自HIP照射的次级光线;
图8a:DAS仅渲染HIP数据;
图8b:DAS渲染场景形状。沿DAS光线的区段的物件被弃用;
图8c:DAS流程图;
图9:由单一DAS投影所产生的各种次级光线的情况;
图10:扩增的对象其立置于具有半反射表面的桌子上;
图11:扩增的对象的直接成像。自摄相机照射的主要光线并且向改变的方向倾斜;
图12a:扩增的对象的直接成像。次级光线通过透视投影的多个DAS照射来产生;
图12b:扩增的对象的直接成像。次级光线通过平行投影的多个DAS照射来产生,储存较大数据的渲染;
图12c:产生扩增的对象的直接影像的流程图;
图13a:扩增的对象的经过反射的成像。主要光线照射至反射区域,重复并倾斜多次;
图13b:扩增的对象的经过反射的成像。由DAS投影承载的次级光线是穿越主要HIP的集群照射至对象;
图14a:扩增的对象的经过反射的成像。多个DAS投影是随机倾斜;
图14b:扩增的对象的经过反射的成像。次级光线对经过集合的光能的贡献符合BRDF函数;
图14c:经过反射的成像的流程图。
图15a:扩增的对象在其环境的渗色效果。主要光线;
图15b:扩增的对象在其环境的渗色效果。次级光线;
图15c:产生渗色效果的流程图;
图16:在原点的像素收集经过采样的光值;
图17:用于AR以及VR的硬件。
具体实施方式
根据本申请器件的原理与操作可参考附图与详细说明来理解,其中出现在不同附图中的相似的组件是以相同的标号来标示。附图以及详细说明是概念上的。在实际应用中,单一组件可以被实施来完成一项或多项功能;或者,每一项功能可以由多个组件与器件来实施。可轻易理解的是,如附图的一般描述与绘示,本申请的组件可以各种不同的组态来配置与设计。因此,如所宣称,下列本申请的器件、系统与方法的实施例的更多详细说明,如此处附图所示,并非意图限制本申请的范围,而仅是作为本发明的实施例的代表。
除非于他处特定说明,如下讨论显明,在通篇说明讨论中利用像是“处理”、“运算”、“计算”、“决定”、“产生”、“创造”或类似的词语,是指计算器或运算系统,或处理器或相似的电子运算器件的行动且/或程序,其可操纵数据使其在运算系统的缓存器及/或内存中表示为实体的,例如电子,量值,且/或转化数据为其他数据,相似地在运算系统的内存,缓存器,或其他这类信息储存,传送或显示器件中表示为实体的量值。
本申请的实施例可使用像是处理器、计算器、器件、系统、子系统、模块、单元以及器件等用语(以单个或多个的形式)来执行此处的操作。这可以是针对想达成的目的特别建构的,或者这可以是用通用计算器由储存于计算器中的计算器程序选择性的激活或重新配置。数个与本申请有关的技术用语特别于此定义。
计算器图形管路是指计算器三度空间渲染的最常见型式,三度空间多边形渲染,不同于光线追踪,以及光线投射。特别来说,在光线投射中,光线源自摄相机的点,如果光线碰撞到表面,接着所述表面上所述点的颜色与照明会被计算出来。在三度空间多边形渲染中反过来也成立,摄相机所能看见的区域被计算出来,接着自摄相机的视野中的每一个表面的每一个部分创造光线出来并且追踪回摄相机。图形管路通常被使用在实时渲染。
渲染投影为在计算器上自动将三度空间线框模型转换为二度空间影像渲染的三度空间计算器图形程序。投影可以是透视、平行、反转或其他形状。
渲染目标是为现代图形处理单元(graphic processing unit,GPU)的特征其允许三度空间场景被渲染成中介内存缓冲,或渲染目标纹理(rendering target texture,RTT),而非框缓冲或背缓冲。这个RTT可接着由像素着色器来操纵以搜寻最后的影像或是将效果应用至最后的影像。
主要光线,是为在光线追踪中第一次产生的光线,自摄相机或眼睛投射入场景以解决可件性的问题,例如来找出是否主要光线与表面交错。
光线追踪中的次级光线是为由主要光线在光线-多边形交错点所生成。它们被用来运算像是阴影、反射、折射等等。这里,我们使用此用语也共同表示所有逐次产生的光,像是三元光线,第四次产生的光线等等。
全局照明,是为用于三度空间计算器图形中的一群算法的一般名字,其代表为三度空间场景加上更真实的照明,考虑到不仅只有直接来自光源的光(直接照明),还有场景中来自相同光源但后续由其他表面反射的光线,无论是否反光(在直接照明中)。
计算器图形中的渗色是为对象或表面上由直接自近处表面反射的光染色的现象。此为当场景使用完全全局照明渲染时会出现的视觉效果。
加速结构,例如网格线、八元树、二元空间分割树(BSP trees),kd树以及边界容积层次结构(bounding volume hierarchy,BVH),是用于光线追踪以解决可见性的问题,跟不具加速结构的质朴光线追踪相比,允许渲染时间在速度与效率上得到改善。
图形处理单元的通用运算(general-purpose computing on GPU,GPGPU)是为使用图形处理单元(GPU),其一般仅处理计算器图像的运算,来执行应用程序中传统上由中央处理单元(CPU)来执行的运算。
AP中的预设场景,取代实时世界。此为预先经过处理的环境场景以包含扩增的对象。
对象可代表简单对象(多边形、三角形、固体等等),或由多个简单对象组合成的复杂对象。
碰撞点是为光线交错对象的点。用语亦为HIP。
可见性-在欧氏空间中给定一组障碍物,如果连接空间中的两点的线区段没有与任何障碍物交错的化,则说两点彼此可见。
场景,在世界空间中三度空间模型与光源的一集合,其中摄相机可以被放置,对三度空间渲染描述场景。场景模型元素包括几何基元(primitives):点或顶点;线区段或边界;多边形或脸。
裁切,在计算器图像的领域中,是为在一经过定义的有效区域中选择性致能或失能渲染操作的方法。
此处所示的程序/器件与显示器并非固有关于任何特别的计算器或其他器件,除非在他处另有特定陈述。各种通用系统可以搭配此处的教导与程序一起使用,或者有可能为了更方便执行想要的方法来建构更专用的器件。用于这些各种系统的结构将会出现在下列的说明中。此外,本申请的实施例并非以参考任何特殊程序语言的方式进行说明。如此所述,可以理解的是各种不同的程序语言皆可被用来实施本申请的教导。
挪用至公知技术科技,本申请的面向教示如何同时以降低的运算复杂度以及高速来实施光线追踪。本申请的一面向是有关路径追踪,其为基于全局照明的高质量光线追踪。其教优异性能来自于不同技术方法以解决光线语场景对象的间的交错。其基于DAS,是为平行光线的投影,被用来承载自存在碰撞点发出的次级光线。DAS机制可以由GPU图形管路或CPU图形管路来实施。DAS机制可以通过传统图形机制的使用来将公知技术中加速结构的昂贵遍历取代掉以解决光线-三角形交错。
DAS机制。在一实施例中,DAS机制是应用于路径追踪,路径追踪是基于全局照明。全局照明(或直接照明)不仅将直接来自光源的光纳入考虑,也会考虑场景中由表面反射的光,无论是镜面,雾面,或半反光。图3描绘了在一给定的表面点,自周遭环境的间反射的漫射的取样。为了在一雾表面上达成全局照明,取样光线必须自碰撞点(HIP)33照射。HIP为光线(主要或次级)与三角形的间前一次相遇的结果。取样通过在半球体31的边界的内向一随机方向照射光线来完成。半球体是被调整方向使得其北极与表面法线对齐。
DAS的基本机制是描绘于图4中,其显示DAS的基本机制是关联于透视投影;然而,其他投影像是平行或反向也是可以想象的到的。DAS结构包括光线的投影其穿越HIP的集群,例如403、405、408,并且以一对象为目标。设至HIP的DAS光线被用来作为次级光线的载体。举例来说,偶然射至HIP 408的DAS光线是承载次级光线406。此光线是落入HIP的半球体407。射入HIP或三角形的DAS光线包括一起始点400,并且可具有两交错点,第一个是与HIP408交错以及第二个是与场景对象(三角形)409交错。相联于同一个HIP 408的额外的次级光线苦子由额外的DAS结构独立产生,在另一方向承载额外的次级光线,在同一半球中。
根据本申请的实施例,DAS投影可以由CPU软件图形管路来实施,但最有效率的器件会是GPU硬件图形管路。这个为人熟知的计算器图形管路技术是为将三度空间模型转换为计算器可显示的形态。图形管路包括两个子系统:几何与光栅化。第一,在DAS视锥中的所有对象根据摄相机视野被几何子系统转化。接着,在光栅子系统中,光线/三角形交错点被Z轴缓冲机制所选取。举例来说,图4中的DAS光线402自投影400的原点射出并且与两对象(408以及409)交错。这两对象哪一个对象被选取取决于控制Z轴缓冲的API指令(直接三度空间或OpenGL)。
三个存在HIP405、408与403的示例性集群,显示它们潜在的三角形。HIP405、408的次级光线是由DAS结构所驱动。作为一示例,载体光线402射至HIP408,从遇到HIP的那点的后,载体光线402变成与HIP相联的次级光线406,搜寻交错409。DAS仅在HIP的半球面向投影时,像是405与408,但不是403,对HIP来说才是重要的。DAS方法是以数学描述如下:
设T为d层的树形图,并且让V为T在空间中的几何图形G的顶点。
定义Vd为V在第d层的顶点。Cd为Vd的分割,设Cd为集群。
我们可以通过找到Vd+1来将T延伸至d+1层:
选择集群c∈Cd,具有Vdc顶点并且定义Lc为从Vdc至Vd+1c的一组映射,使得Vd+1c为Vdc中位于G上的顶点的投影。
·注意Lc为来自同一输入的映像,所以对任何输入顶点可以有多个目标顶点。
我们投射在
中的每一个集群c∈C
d上的每一个可能的g∈G,而非投影在
中的每一个可能的几何图形g∈G上的每一个顶点v∈V
dc。
·在R3中我们可以利用传统三度空间图形管路(光栅硬件)来达成快速平行映射(投影)。
我们在通量/过度符合优化Cd/Lc以得到:
·每一集群平均来说(通量)顶点的最大数量。
·符合所有顶点(过度符合)的几何图形的[离散]投影的最小数量。
·预先处理/执行时的限制条件。
Lc被选取来具有伪随机输出,对每一个v∈Vdc表现分布的可能区段以模拟物理情境。
由图5可知,多个DAS投影是以稍不同的方向照射于场景或部分场景;每一个方向可以随机的方式决定。结果邻近的多个样本为了全局照明可以在每一个HIP取样。HIP 507是为由自影像像素500射出的主要光线508所产生的主要碰撞点。HIP 507是由后续的三个DAS投影501、502以及503所拜访。每一个DAS皆为HIP 507承载次级光线。三个次级光线中的每一个光线皆提供来自环境的不同样本,例如分别来自表面504、505以及506。
也许有各种不同的方式可以使用由逐次的DAS投影所产生的HIP。根据一实施例,如图6所示,所有新产生的HIP会贡献它们的数据。在此示例中,使用了四个逐次的DAS投影。假设601为主要HIP,先前产出自影像像素600射出的主要光线,它的第一后继点为第一DAS投影产生的HIP 602。第二DAS投影,具有不同方向,产生HIP后继点603与604。第三DAS投影产生HIP 605、606以及607。接着,一个后继点HIP 608被产生以作为第四DAS投影的结果。自所有HIP的光取样必须为影像像素600被平均且收敛至渲染方程序的正解,例如608与605,收敛至603,其收敛至602,其依次收敛至601。最后,主要HIP 601收敛至所有它的后继点602、604以及607的经过集合的取样值,并且最后结果将会送至像素600,在其他主要HIP中作为像素中部分的贡献。正确的渲染方程序对所有收敛结果应该最终会产生物理上正确的影像。
次级光线意用于与场景对象交错,如图7a-7c所示。图7a显示一场景其包含两三角形711、712以及两主要HIP 713、714。于图7b中,DAS投影721照设至HIP。HIP 714面对相反地方向,因此会在目前的DAS中被排除。HIP 713是与投影正向排列,发起次级光线。如图7c进一步所示,与HIP 713相联的承载光线是分成两部分;前期区段731以及主要区段732。前期区段731自DAS原点延伸至HIP 713。它的功用在于确切找出点HIP以及它的深度。一旦深度ZHIP被找到,来自HIP并延伸至交错点733的主要区段会扮演承载次级光线的角色,来搜寻交错点。当它于733碰撞至对象时,会产生次级HIP。
根据本申请的一实施例,DAS投影利用GPU的Z轴缓冲机制,如图8a及8b所示。Z轴缓冲机制必须弃用HIP的前的所有对象,并且仅自HIP开始搜寻对象。这是基于GPU的Z轴缓冲机制的选择性的使用,例如OpenGL的图形函式库中的glDepthMask函式。这是以两道分别的渲染所完成。在第一道渲染中,HIP被渲染为场景中唯一的对象,不管几何数据以及产生HIP深度屏蔽。在第二道渲染中,HIP深度屏蔽被使用来渲染场景形状。第一道渲染是如图8a所示。承载光线812其重迭HIP 811,被分成两区段,并且在两道渲染中被处理。前期区段,在第一道渲染过程中,自摄相机813延伸至HIP。HIP的深度值、ZHIP被注册于HIP深度屏蔽810。深度值被保留下来以供候续将HIP以前的所有对象滤掉时使用,在第二渲染过程中。在第二道渲染中(图8b),几何数据被渲染来开始于深度ZHIP 811,例如,三角形825是被忽略。主要区段,次级光线的承载,于823碰撞三角形。第二道渲染的结果是储存于渲染目标820。错过HIP的光线完全被弃用,会整体被视为前期区段。一旦渲染目标完成,光线/三角形确实的交错点823可通过在u检查渲染目标来被找到,DAS承载光线的v坐标。交错的三角形提供必要数据,像是颜色、光、法线、材料等等。
图8c中的DAS流程图是总结产生以及使用DAS机制的方法。DAS投影以一对象(例如,扩增的对象)或次场景为目标,穿越HIP的集群,为了对HIP产生次级光线。DAS照射2次。第一次仅照射在HIP数据,忽略场景几何数据,并且产生HIP深度屏蔽831。第二次完全相同的DAS投影832被照射。这一次场景的几何数据是经过渲染的,忽略HIP数据。深度屏蔽810被用在次级光线的起始点。次级光线在DAS投影上驱动,搜寻与几何数据的交错。渲染结果、渲染目标、三度空间次场景的二度空间投影基本上为次级光线与场景的几何数据的间的所有交错点的集合。直接有关特定HIP的交错点可以通过搜寻渲染目标上相符HIP的坐标u,v的u’,v’的坐标来找到。交错点的颜色与光值会被反馈至HIP,以提供全局照明833的样本。最后,储存于HIP库的交错点将被作为下一次产生的HIP 834。
次级光线的各种情况绘示于图9中,其中所有次级光线皆由单一DAS投影所承载。光线900包含两区段。前期区段自摄相机909延伸至HIP 903当主要区段在交错点905遇到三角形907时,弃用三角形906。光线902的次级区段未碰撞任何对象。光线901没有遇到主要HIP,因此整体被视为前期区段,忽略三角形908。
本申请的DAS机制在其他技术领域是可实施的,像是在AR。其一实施例可实现区域化的路径追踪,专注在场景中的一个或多个对象的渲染,以及专注在扩增的对象与真实环境的间的完美整合。图10是绘示了扩增的对象的示例,佛像101立设于真实桌子的半反光表面107上。并非只需要对象101的影像就能产生佛像如相片般真实的外表,而是还需要它的反射102。扩增的对象对其真实环境的效果可能来导致反射,像是改变默认环境的阴影与渗色。另一方面来说,环境在扩增的对象上的冲击可能导致对象本身的照明与反射。
根据本申请的实施例,环境中对象的影像以及对象的反射是由两个分别的任务来产生,并且将结果结合馈给影像像素。
扩增的对象的直接成像。扩增的对象的基础影像可以仅从对象表面上的主要HIP来被重新建构。然而,为了影像上全局照明的效果,像是反射至对象上的环境,就需要次级光线,自对象射入它的环境。如图11所示的扩增的对象110的渲染任务。为了简单说明,将以二度空间2D附图来进行说明。摄相机113照射主要光线114至扩增的对象,搜寻光线与对象的交错。对全局照明来说,这些交错点变成HIP,意被用来作为次级光线的起始点。
主要光线的照射重复,每一次在方向上稍为有变化,使得影像像素的多个样本可以被取得。方向是以随机的方式改变,为了避免影像上产生不想要的纹路。多个取样可对影像贡献抗锯齿的质量。在图11中三个主要照射为115、116以及117。
场景中扩增的对象的真实与整合的外表可透握全局照明来达成。对全局照明来说关键的环境是通过次级光线自主要HIP向场景有关的部分射出来采样。如果对象可反光的话,场景有关的部分是为那些通过可自摄相机看到的对象反射。举例来说,这样的有关部分可以是图12a中的次场景123,因为它在对象的反射可以由摄相机127所看见。
次级光线是通过DAS结构来产生,无论是通过图12a的透视投影,或是图12b中的平行投影。在图12中,DAS投影是以次场景123为平行投影穿越主要HIP(例如128)。
因为所有逐次的DAS投影是以相同的次场景123为目标,本次场景可以自全部场景中裁切出来,来在缩小的区域中选择性的致能渲染操作,因此最小化渲染程序。
在每一个HIP上创造多个次级光线,多个DAS投影中的每一个是由随机稍许不同的视角与方向来产生。使用随机产生的方式可以避免影像中产生不想要的纹路。次级光线为HIP(图3,31)整合于对象与环境的间取样全局照明。经过采样的照明根据对象的材料以及其亮面程度或雾面程度冲击影像来创造对象对环境的反应,例如如果对象可反光或部分可反光,会导致对象上环境的反射,或如果是雾面的话仅会有一些背景照明。
DAS有更多投影,全局照明会有更好的覆盖。然而,更多投影或弱化性能。因此,在影像质量与性能的间会有取舍。
扩增的对象产生直接影像的方法可总结于图12c的流程图。第一,多个主要投影自摄相机(眼睛,视角)照射至扩增的对象以产生主要HIP 1231的集群。接着做为次级光线目标的部分场景应该被定义出来,可能被裁切为次场景1232,并且DAS投影的参考点必须根据所选取的次场景1236设定。接着,由多个DAS投影所产生的次级光线射入有关的次场景1233。DAS投影的结果是为将目标纹理渲染至经过决定的次场景。搜寻次级光线与经过决定的次场景的间的交错是通过比对相关的主要碰撞点与渲染目标纹理1237的坐标来完成。
每一个主要HIP被馈给其次级光线与遭遇的三角形1234的间对应的交错点的光值。如果不只有一个次场景被采纳,上述程序可以重复。接着,最后,交错点会被加入HIP库中作为新产生的HIP 1235。自所有主要碰撞点集合的颜色与光值的经过处理的样本是收敛至影像像素,以创造受三度空间的场景影响的扩增的对象的完整影像。
反射扩增的对象。环境项目中的对象的影像的反射是通过跟随由摄相机射出,接着向扩增的对象反弹,至场景的表面的光线来完成。闪亮的表面或版块上的反射会增强三度空间渲染的拟真效果。反射的程度取决于表面的反射率(材料的BRDF)。
第一,在真实场景(其可能反射扩增的对象)中可反光或半反光表面(或项目)必须被识别出来。接着我们照射主要光线在意图使它反射的对象或其部分的表面上,来产生主要HIP。从这些HIP,我们以扩增的对象为目标射出次级光线并且取样。这种产生反射的方式是绘示于图13a与13b中。涵盖意图产生反射的区域的主要HIP由主要光线来创造,主要光线是自摄相机133射出,穿过影像屏幕130,朝向反射134的区域。表面132上的反射区域134的位置与边界是根据摄相机的位置、扩增的对象110的距离与大小以及根据司乃尔定律(Snell law)考虑的主方向131来决定。为了在影像像素中多次取样,主要照射会重复多次。每一次逐次的主要投影皆会稍微随机偏离主方向,使得影像的每一个像素得到多个样本。反射区域134的表面变成由稠密的主要HIP数组所涵盖。多次取样的随机性可避免在结果影像中产生不想要的纹路。
图13b描述了次级光线如何产生经过反射的影像。表面132上扩增的对象110的反射系由在主要HIP采样的数据来重新建构,所采样的数据是通过照射次级光线于物件来收集而得。我们使用几何点136,其为摄相机133在表面132上的反射,来作为多个DAS投影的参考点。每一个投影皆自不同点射出,随机偏离于参考点136。
如图13b中所示的DAS 135,其源自参考点136,沿轴139导向,轴139是指向扩增的对象110的中心。DAS承载所有起始于主要HIP(例如137)并且以扩增的对象为目标的次级光线138。
为了在HIP对BRDF函式所需要的光谱取样,多个DAS投影随机偏离自参考DAS投影–也就是从参考点开始并且具有投影轴指向扩增的对象的中心的那一个DAS投影。与参考DAS的间的倾角是通过随机来完成,稍微偏离参考点142与中心轴145,如图14a所示。三个DAS投影是绘示于图14a。
假设参考DAS确切源自参考点142,并且其轴145朝中央方向,接着两个其他DAS投影从邻近点141与143开始,且它们的轴144与146偏离中央方向145。作为一示例,我们选择HIP 140,三次级光线144、145以及146由此射出,每一个次级光线皆由不同DAS所承载。
参考DAS与DAS次级光线的偏离的间的关是,以及其对经过集合的光能的贡献是绘示于图14b。其与表面材料132的BRDF函式147强烈相关。三次级光线144、145以及146中的每一个是从同一HIP向不同方向射出,但以图的半球体为边界。
3.结果,它的经过采样的数据是根据BRDF函式贡献至经过集合的光能。让我们假设次级光线146沿绝对司内尔方向前进,接着这会带来峰值在BRDF函式147的最大贡献。次级光线144与145则取决于距离峰值的BRDF值具有较小的贡献。
产生扩增的对象经过反射的影像的方法是总结于图14c的流程图。第一,在真实场景中扩增的对象应该反射的区域被决定(步骤1431)。接着,多个主要投影自摄相机射出至反射的区域,产生主要HIP的集群(步骤1432)。接着,经过反射的摄相机的位置是作为DAS投影的参考点,并且中心轴指向扩增的对象,必须被计算(步骤1433)。接着,由DAS所产生的次级光线向对象射出。多个DAS投影随机倾斜,自DAS偏离(步骤1434)。接着,在交错点取样的光值被馈给他们个别的原点的HIP(步骤1435)。最后,交错点被加入HIP库以作为新产生的HIP(步骤1436)。这些HIP用来进一步产生次级光线。
渗色是为对象或表面被反射自邻近表面的直接光染色的现象。在某种意义来说这是全局照明算法,到达表面的照明不仅来直接来自光源,也来自其他表面反射的光。渗色对视角来说是独立的,这对所有视角来说是很有用的。在AR或VR中的渗色效果会直接在扩增的对象的附近发生。本申请产生渗色效果的实施例是绘示于图15a。扩增的对象154,立置于基底152,应该要在真实基底152上产生渗色效果。第一,我们定义渗色补丁的边界系围绕扩增的对象的中心,也就是渗色出现的地方。补丁的大小取决于所用的材料、距离以及光量。接着在没有扩增的对象的情况下,我们自摄相机153照射主要光线至补丁155。主要HIP的集群产生,涵盖补丁。主要射出重复多次,每一次稍微偏离主方向151。主方向151是自摄相机朝向对象立置的位置的中心。
图15b绘示了次级光线的使用。渗色效果是由次级光线被取样对象重新建构,次级光线是自主要HIP射向对象。次级光线是通过DAS投影来产生。不像扩增的对象的反射或扩增的对象的直接成像,DAS投影会得到反向投影156的形状。多个DAS投影被完成,每一次稍微偏离主方向。对象的表面的样本是取自基底,假设采用正确的渲染方程序,致能基底上能量的量的计算。
产生渗色的方法是总结于图15c的流程图。第一,场景中渗色补丁的位置与大小被定义(步骤1531)。接着,多个主要投影自摄相机射至渗色补丁,以产生主要HIP的集群(步骤1532)。接着,位于DAS投影中心的参考点被计算出来(步骤1533),以及反向投影需要的形状(步骤1534)。接着次级光线由多个DAS投影射出,每一个随机偏离DAS投影的中心(步骤1535),饼且交错点的光值被馈给主要HIP(步骤1536)。在渗色中,仅会产生HIP。
收集光值。HIP中所有样本的值必须由正确的渲染方程序来处理以产生正确的物理结果。表面材料、场景的几何图形、半球体的主动区域以及其他参数是被纳入考虑。对特定的影像像素,所有HIP的光贡献是由来自像素的主要照射所产生,以及所有它们的次级后继光线,必须汇集,处理,并且收敛至源像素来形成影像。如图16中所示,从对象以及从其环境取样是收敛至影像像素164。像素接收来自扩增的对象的表面上的主要HIP 165的输入,其自光的逐次的产生来收集值。像素也会从可反光的HIP 161以及其逐次的产生接收输入。165与161经过处理的结果是被加权,接着收集至影像像素164。
实施态样。本申请的核心是为DAS机制。当以路径追踪来实施时,会产生次级光线并且找到光线与场景对象的交错,排除公知技术的加速结构的使用。DAS机制,其基于传统光栅图形管路,是可通过GPU硬件管路或CPU软件管路来实施。GPU的平行结构使得图像管路与通用CPU相比现得更有效率。GPU是为专化的电子电路用来加速图形管路。当CPU包含一些核心专用在连续序列处理时,GPU则包含上千的小核心被设计来多任务处理。有两种主要的图形处理器:积体以及离散。DAS可以利用系统(离散GPU)中分开的组件,或是由CPU芯片上的嵌入式GPU(积体GPU)来执行。积体GPU是用于嵌入式系统、移动电话、个人计算机、工作站以及游戏主机。
如的前所详述的,用来于预设场景中创造扩增的对象以及它们的视觉内容的运算任务主要是基于图形管路。对于这些任务来说,GPU的使用有极大的好处。也额外有收集全局照明的经过采样的值的任务,根据渲染方程序来处理这些值,并且将结果收敛于影像像素。收集任务,是相联于传统处理,可以通过CPU或GPGPU来实施。也有额外的任务其相联于用户的观看器件171,如图17所示。对扩增实境来说,那些器件是穿戴式计算器眼镜其可以添加信息至穿戴者所看到的对象上或旁。一般来说这会通过光学头戴式显示器(OHMD)或嵌入式具有透明头上显示器(HUD)的无线眼镜或可反射经过投影的数字影像并且允许用户看穿影像的AR重迭器件来完成。对虚拟现实来说,观看器件171可以代表虚拟现实头戴器件其提供虚拟现实给穿戴者。VR头戴器件广泛与计算器游戏一起使用但他们也可用于其他应用,包含仿真器或训练器。它们包括立体头戴式显示器(对每一只眼睛提供分开的影像),立体声道,以及头部动作追踪传感器。无论哪一种,组件171必须通过API软件与运算平台接口,API软件一般由CPU来实施。
于是,本申请的实施例是可结合CPU与GPU来实施,如图17所示。GPU可代表离散图像,整合图形或两者的结合:整合图形与离散图像一起。
积体图形表示GPU是整合于CPU芯片并且与处理器共享内存。因为积体GPU仰赖于系统RAM,它们不会有像是它们位于自己的卡片并配有自己的内存VRAM的离散对应件所会有的运算力。与离散图形适配器的内存VRAM与GPU核心相比,积体GPU具有较系统RAM低的内存带宽。此带宽是指称为内存总线并且可以决定性能。进一步说,如同GPU极度地受内存影响,积体处理会发现它与CPU抢着要使用较慢的系统RAM,因为它有最小或没有专用的影像内存。为了最佳可能的图形性能,使用离散图形芯片会比积体GPU有更好的效能。
另一方面来说,共享相同的RAM内存也可以有它的好处,因为多核的芯片上的图形核在交换大数据可以与CPU核有更好的合作。成像对象的单纯图形任务,必须由CPU核为渲染方程序收集并计算反射以及渗色产生光值的大数据。
然而,不论离散GPU的性能优点,本申请在扩增实境、虚拟现实以及计算器游戏这样的应用中,会想要使用积体GPU来实施,因为其较好的功效率、经济上较容易负担、较容易携带以及多样性。积体GPU,如同多核的CPU芯片的组成,是用于嵌入式系统、移动电话、平版以及游戏主机。
除了使用离散GPU或积体GPU,本申请也可使用混合式系统其具有离散以及积体GPU,根据任务来决定合作与分工。