用于实施光线跟踪的系统、方法和计算机程序产品的制作方法

文档序号:6506371阅读:135来源:国知局
用于实施光线跟踪的系统、方法和计算机程序产品的制作方法
【专利摘要】提供了用于实施光线跟踪的系统、方法和计算机程序产品。在使用中,利用分治方法实施光线跟踪,其中分治方法与高速缓存相关联。
【专利说明】用于实施光线跟踪的系统、方法和计算机程序产品
[0001]优先权要求
[0002]本申请要求于2012年7月24日提交的美国临时申请第61/675,215号的权益,本文通过援弓I的方式对其全部内容加以合并。
【技术领域】
[0003]本发明涉及图形处理,并且,更具体地,涉及实施光线跟踪。
【背景技术】
[0004]利用光线跟踪的图像生成已成为计算机图形的重要领域。例如,光线跟踪可用来产生具有高度视觉写实的合成图像。然而,用于实施光线跟踪的当前技术已与各种限制相关联。
[0005]例如,用于实施光线跟踪的当前方法可能是低效的,因为这种方法可能在光线跟踪计算期间实施多余动作。因此存在解决与现有技术相关联的这些和/或其他问题的需要。

【发明内容】

[0006]提供了用于实施光线跟踪的系统、方法和计算机程序产品。在使用中,利用分治方法实施光线跟踪,其中分治方法与高速缓存相关联。
【专利附图】

【附图说明】
[0007]图1示出根据一个实施例的、用于实施光线跟踪的方法。
[0008]图2示出根据另一个实施例的、用于实施分治(divide and conquer)光线跟踪的方法。
[0009]图3示出其中可以实现各种先前实施例的各种架构和/或功能性的示例性系统。【具体实施方式】
[0010]图1示出根据一个实施例的、用于实施光线跟踪的方法100。如操作102中所示,利用分治方法实施光线跟踪,其中分治方法与高速缓存相关联。在一个实施例中,光线跟踪可包括路径跟踪。例如,光线跟踪可包括跟踪穿过空间(例如场景等)的路径(例如光路等),其中空间包括一个或多个对象。在另一个实施例中,光线跟踪可包括仿真路径与一个或多个对象的遭遇(例如相交等)的一个或多个效果。
[0011]此外,在一个实施例中,利用分治方法实施光线跟踪可包括实施分区化。例如,利用分治方法实施光线跟踪可包括将空间(例如其中正在实施光线跟踪的空间等)分区化。在另一个示例中,利用分治方法实施光线跟踪可包括将对象列表(例如空间内的对象(例如几何基元等)的列表等)分区化。
[0012]并且,在一个实施例中,可利用一个或多个方法实施分区化。例如,可利用表面积启发法、中线分割、全局启发式分割以及由偏移和法线所定义的经选择平面的分割中的一个或多个来实施分区化。在另一个实施例中,分区化可创建多个分区(例如空间分区、对象列表分区等)。在又一个实施例中,利用分治方法实施光线跟踪可包括剔除分区中的一个或多个(例如根据特定光线跟踪操作移除分区中的一个或多个)。
[0013]进一步地,在一个实施例中,利用分治方法实施光线跟踪可包括以递推的方式实施分区化。例如,利用分治方法实施光线跟踪可包括递推地细分空间、递推地将空间内的对象分区化等。在另一个示例中,利用分治方法实施光线跟踪可包括通过递推地将空间内的一个或多个对象分区化以创建对象的一个或多个分区来跟踪穿过经选择数目的对象的经选择数目的光线,以及根据光线剔除掉对象的一个或多个分区。通过该方式,(例如通过实施层次剔除等)可减少求交测试(例如光线和一个或多个对象之间的相交的测试等)的数量。同样地,层次剔除可通过在递推地将空间分区化期间削减层次遍历来减少求交测试。
[0014]仍进一步地,在一个实施例中,高速缓存可包括计算系统内的存储器的一个或多个部分。例如,高速缓存可包括位于计算系统的中央处理单元(CPU)上的存储器的一个或多个部分、位于计算系统的图形处理单元(GPU)上的存储器的一个或多个部分等。
[0015]并且,在一个实施例中,在利用分治方法的光线跟踪期间所获得的信息可存储在高速缓存中。例如,高速缓存可存储与分治方法相关联的分区化信息(例如分区化结果等)。在另一个示例中,可分配固定数量的分区高速缓存存储器,并且这种分区高速缓存存储器可存储在分治方法期间通过分区化所创建的多个分区中的一个或多个。通过该方式,作为利用分治方法实施光线跟踪的结果所获得的分区化结果可存储在高速缓存中,而非存储完全显式层次辅助加速数据结构。
[0016]另外,在一个实施例中,通过修改与分治方法相关联的算法(例如分治算法)的一个或多个部分,在利用分治方法的光线跟踪期间所获得的信息可存储在高速缓存中。在另一个实施例中,高速缓存可存储与光线跟踪的实施相关联的层次的一部分。例如,高速缓存可存储通过分区化所创建的分区的完整层次的一个或多个层(例如预定数目的顶层等)。
[0017]此外,在一个实施例中,高速缓存可基于与分区相关联的重新计算时间(times)存储一个或多个分区。例如,每个分区可与基于实施分治方法内的该分区的重新计算所要求的工作量的优先权相关联。在另一个示例中,具有最高优先权的预定数目的分区可存储在高速缓存内。通过该方式,高速缓存可存储与最高重新计算时间相关联的分区。
[0018]仍进一步地,在一个实施例中,可分层次地应用利用分治方法的光线跟踪。例如,可利用有向无环场景图实施光线跟踪。在另一个实施例中,多个高速缓存可与有向无环场景图中的多个参考节点相关联,使得有向无环场景图中的多个参考节点中的每一个具有其自己的不同高速缓存。
[0019]并且,在一个实施例中,利用分治方法的光线跟踪可包括层次遮挡剔除。例如,分治方法可用于在光栅化期间的层次遮挡剔除。在另一个实施例中,可与利用分治方法的光线跟踪相联系来确定遍历次序(例如其中处理空间内的光线集合和对象集合的次序等)。例如,可通过光线民主、平均化的光线方向以及量化的光线方向中的一个或多个来确定遍历次序。
[0020]将关于各种可选架构和特征阐述更多示例性信息,实现前述框架可以利用或不利用上述架构,这依据用户的需要。应特别注意的是,阐述接下来的信息是出于示例性目的并且不应视为以任何方式加以限制。任何接下来的特征可以在排除或不排除所描述的其他特征的情况下可选地加以合并。
[0021]图2示出根据另一个实施例的、用于实施分治光线跟踪的方法200。作为选项,可在图1功能性的上下文中实行方法200。然而当然,可在任何需要的环境中实现方法200。还应注意的是,可在本描述期间应用前述定义。
[0022]如操作202中所示,标识包括多个几何基元的空间。在一个实施例中,空间可包括待通过仿真虚拟照相机渲染为图像的场景。在另一个实施例中,场景可包括几何基元,其可包括位于空间内的任何对象(例如几何形状等)。
[0023]此外,如操作204中所示,利用分区高速缓存存储器,与多个几何基元相联系在空间内实施分治光线跟踪。在一个实施例中,实施分治光线跟踪可包括利用同时层次遍历重新排序光线集合和几何基元集合,同时隐性地保持层次的追踪。在另一个实施例中,分治光线跟踪可以不存储加速数据结构(例如这种数据结构可以是隐性的等)。参见例如美国专利申请 US 2009/0225081 和 “Efficient ray tracing without auxiliary accelerationdata structure,,(A.Keller 等,Poster,High Performance Graphics,2011),其描述分治光线跟踪的示例,在此通过援引的方式对其全文加以合并。
[0024]进一步地,在美国专利申请US2009/0225081 和“Efficient ray tracingwithoutauxiliary acceleration data structure,,(A.Keller 等,Poster, High PerformanceGraphics, 2011)的一个示例案中,实施分治光线跟踪可包括实施空间的(spatial)分区化(例如递推的空间的分区化、递推的细分等)。还参见例如“Naive ray-tracing:Adivide-and-conquer approach,,(B.Mora, ACM Trans.Graph.,30 (5): 117:1 - 117:12,2011
年 10 月)和 “Incoherent ray tracing without acceleration structures,,(A.A fra,
EuroGraphics Short Paper,2012),其描述空间的分区化的示例性实现方案,在此通过援引的方式对其全文加以合并。
[0025]仍进一步地,在一个实施例中,虽然分治光线跟踪可以是高速缓存参数无关(cache oblivious)的,但是可以通过重新排序数据获得高速缓存实施的益处。在另一个实施例中,可利用分区高速缓存存储器解决光线跟踪中的多余计算。例如,可分配固定数量的高速缓存存储器以创建分区高速缓存存储器,并且这种分区高速缓存存储器可用来对在分治光线跟踪的实施期间所获得的信息进行高速缓存。例如,分区高速缓存存储器可用来在递推细分的实施期间对信息进行高速缓存。
[0026]此外,参见例如 “Geometry presorting for implicit object spacepartitioning,,(M.Eisemann 等,Computer Graphics Forum(Proc.0f EurographicsSymposium on Rendering (EGSR)),31(4),2012 年 6 月)、“Ray Tracing mi tStrahlbiindeln,,(B.Frohlich, PhD thesis, Naturwissenschaftliche Fakultat derTechnischen Ulliversitai Carolo-Wilhelmina zu Braunschweig, 1993) ,Improvingdata locality for efficient in-core path tracing,,(J.Bikker,ComputerGraphics Forum,第 31 卷,第 6 期,1936 - 1947 页,2012 年 9 月),和 “Terminatingspatial hierarchies by a priori bounding memory,,(C.Wachter 等,InProceedings of the2007IEEE Symposium on Interactive Ray Tracing,RT’ 07,41 - 46
【权利要求】
1.一种方法,包括: 利用分治方法实施光线跟踪, 其中所述分治方法与高速缓存相关联。
2.根据权利要求1所述的方法,其中利用所述分治方法实施光线跟踪包括实施分区化。
3.根据权利要求1所述的方法,其中利用所述分治方法实施光线跟踪包括将空间分区化。
4.根据权利要求1所述的方法,其中利用所述分治方法实施光线跟踪包括将对象列表分区化。
5.根据权利要求2所述的方法,其中所述分区化利用表面积启发法、中线分割、全局启发式分割以及由偏移和法线所定义的经选择平面的分割中的一个或多个来实施。
6.根据权利要求2所述的方法,其中所述分区化创建多个分区。
7.根据权利要求6所述的方法,其中利用所述分治方法实施光线跟踪包括剔除所述分区中的一个或多个。
8.根据权利要求1所述的方法,其中利用所述分治方法实施光线跟踪包括以递推的方式实施分区化。
9.根据权利要求1所述的方法,其中利用所述分治方法实施光线跟踪包括通过递推地将空间或对象列表中的至少一个分区化以创建一个或多个分区来跟踪穿过经选择数目的对象的经选择数目的光线,以及根据光线剔除掉所述一个或多个分区。
10.根据权利要求1所述的方法,其中在利用所述分治方法的所述光线跟踪期间所获得的信息存储在所述高速缓存中。
11.根据权利要求1所述的方法,其中所述高速缓存存储与所述分治方法相关联的分区化信息。
12.根据权利要求2所述的方法,其中所述高速缓存存储由所述分区化所创建的分区的完整层次的一个或多个层。
13.根据权利要求1所述的方法,其中所述高速缓存基于与所述分区相关联的重新计算时间存储一个或多个分区。
14.根据权利要求1所述的方法,其中所述光线跟踪利用有向无环场景图来实施。
15.根据权利要求14所述的方法,其中多个高速缓存与所述有向无环场景图中的多个参考节点相关联,使得所述有向无环场景图中的多个参考节点中的每一个具有其自己的不同高速缓存。
16.根据权利要求1所述的方法,其中所述分治方法用于光栅化期间的层次遮挡剔除。
17.根据权利要求1所述的方法,其中遍历次序与利用所述分治方法的所述光线跟踪相联系来确定,其中所述遍历次序通过光线民主、平均化的光线方向以及量化的光线方向中的一个或多个来确定。
18.一种具体化在计算机可读介质上的计算机程序产品,包括: 用于利用分治方法实施光线跟踪的代码, 其中所述分治方法与高速缓存相关联 。
19.一种系统,包括:处理器,用于利用分治方法实施光线跟踪,其中所述分治方法与高速缓存相关联。
20.根据权利要求19所述的系统,其中所述处理器经由总线耦连到存储器。
【文档编号】G06T15/06GK103578131SQ201310314064
【公开日】2014年2月12日 申请日期:2013年7月24日 优先权日:2012年7月24日
【发明者】尼古劳斯·比内尔, 卡斯滕·亚历山大·韦希特尔, 亚历山大·凯勒 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1