首页> 中国专利> 光线跟踪内核及具有该光线跟踪内核的光线跟踪芯片

光线跟踪内核及具有该光线跟踪内核的光线跟踪芯片

摘要

本发明公开了光线跟踪内核及具有该光线跟踪内核的光线跟踪芯片。该光线跟踪内核包括光线生成单元和采用MIMD(多指令流多数据流)架构的多个T&I(遍历和交叉)单元。光线生成单元基于眼光线生成信息来生成至少一个眼光线。眼光线生成信息包括屏幕坐标值。多个T&I单元中的每一个接收至少一个眼光线并检查是否存在与接收的至少一个眼光线交叉的三角形。该三角形构成一个空间。

著录项

  • 公开/公告号CN102439632A

    专利类型发明专利

  • 公开/公告日2012-05-02

    原文格式PDF

  • 申请/专利权人 斯里考纳特斯公司;朴祐赞;

    申请/专利号CN201080022742.4

  • 发明设计人 朴祐赞;尹亨敏;

    申请日2010-05-19

  • 分类号G06T15/06(20110101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人李辉;吕俊刚

  • 地址 韩国首尔

  • 入库时间 2023-12-18 05:08:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-06-08

    未缴年费专利权终止 IPC(主分类):G06T15/06 授权公告日:20150909 终止日期:20170519 申请日:20100519

    专利权的终止

  • 2015-09-09

    授权

    授权

  • 2014-12-03

    专利申请权的转移 IPC(主分类):G06T15/06 变更前: 变更后: 登记生效日:20141104 申请日:20100519

    专利申请权、专利权的转移

  • 2012-07-11

    实质审查的生效 IPC(主分类):G06T15/06 申请日:20100519

    实质审查的生效

  • 2012-05-02

    公开

    公开

说明书

技术领域

所述技术涉及3D图形处理,更具体来讲,涉及一种光线跟踪内核及具有该光线 跟踪内核的光线跟踪芯片。

背景技术

3D图形技术在计算系统中使用3D几何数据表示,在多个行业被广泛采用,例 如,媒体和游戏产业。一般来说,由于需要大量的计算,3D图形技术需要一个单独 的高性能处理器。

尤其是,根据处理器近期的发展,光线跟踪技术已经开发出了非常逼真的3D图 形技术,能够模拟例如反射、折射和阴影等光效。

发明内容

在一些实施方式中,光线跟踪内核包括光线生成单元和多个采用MIMD(多指令 流多数据流)架构的T&I(遍历和交叉)单元。光线生成单元基于眼光线生成信息来 生成至少一个眼光线。眼光线生成信息包括屏幕坐标值。多个T&I单元中的每个接 收至少一个眼光线并检查是否存在与所接收的至少一个眼光线交叉的三角形。该三角 形构成一个空间。

在一些实施方式中,光线跟踪内核包括设置处理单元(setup processing unit)、光 线生成单元和多个采用MIMD(多指令流多数据流)架构的T&I(遍历和交叉)单元。 设置处理单元复用眼光线生成信息或阴影信息中的一个。阴影信息包括坐标值、颜色 值和光线三角形命中点(hit point)的阴影光线类别。光线生成单元基于眼光线生成 信息或阴影信息来生成至少一个眼光线或阴影光线,或者确定最终颜色值。多个T&I 单元中的每个确定与所生成的至少一个眼光线或阴影光线交叉的三角形。该三角形构 成一个空间。

在一些实施方式中,光线跟踪芯片包括多个光线跟踪内核、被配置为将至少一个 图像块分配给多个光线跟踪内核中的一个光线跟踪内核的XY生成器和被配置为存 储从多个光线跟踪内核中的每一个输出的最终颜色值的存储器。多个光线跟踪内核中 的每一个包括被配置为基于眼光线生成信息来生成至少一个眼光线的光线生成单元, 眼光线生成信息包括屏幕坐标值和多个采用MIMD(多指令流多数据流)架构的T&I (遍历和交叉)单元。多个T&I单元中的每个接收至少一个眼光线并检查是否存在 与接收的至少一个眼光线交叉的三角形。该三角形构成一个空间。

在一些实施方式中,光线跟踪芯片包括多个光线跟踪内核、被配置为将至少一个 图像块分配给多个光线跟踪内核中的适当的光线跟踪内核的XY生成器和被配置为 存储从多个光线跟踪内核中的每一个输出的最终颜色值的存储器。多个光线跟踪内核 中的每一个包括被配置为复用一个眼光线生成信息或阴影信息的设置处理单元,阴影 信息包括坐标值、颜色值和用于光线三角形命中点的阴影光线类型、被配置为基于眼 光线生成信息或阴影信息来生成至少一个眼光线或阴影光线或被配置为确定最终颜 色值的光线生成单元,以及多个采用MIMD(多指令流多数据流)架构的T&I(遍历 和交叉)单元,每一个都确定与所生成的至少一个眼光线或阴影光线交叉的三角形, 该三角形构成一个空间。

本发明的实施方式将会参考附图而进行更全面地描述,其中附图中展示了本发明 的实施方式。然而,本发明可以以多种不同的形式被实施,且并不应当理解为对此处 说明的实施方式的限制。恰恰相反,这些实施方式被提供来使得此处的公开周全而完 备,并对本领域技术人员完全表达出本发明的范围。贯穿整个申请中,相同的标号用 以表明类似的部件。

可以理解的是,尽管第一、第二等术语此处被用来描述不同的部件,但这些部件 并不被这些术语所限定。这些术语用来将一个部件与另一个区分开来。例如,在不背 离本发明的范围的情况下,第一部件可被称为第二部件,类似的,第二部件可被称为 第一部件。此处使用的词语“和/或”包括任意和所有的一个或多个相关列出的元件的 组合。

可以理解的是,当一个部件被指“连接”或“耦接”到另一个部件时,它可以是直接 连接或耦接到另一个部件或存在经由中间的部件。相反地,当一个部件被指“直接连 接”或“直接耦接”到另一个部件时,其中没有中间部件。其他用于表述部件之间关系 的词使用相同的方式被解释(例如,“在……之间”对“直接在……之间”,“相邻”对“直 接相邻”等)。

此处使用的术语用于描述特定的实施方式而并不意图对发明进行限制。在此处使 用的单数形式意图同样包括复数形式,除非上下文明确指示相反。进一步需要理解的 是,当在此处使用术语“包括”和/或“包含”时,说明了所述特征、要件、步骤、操作、 部件和/或组件的存在,但不排除其中存在或增加一个或多个其他的特征、要件、步 骤、操作、部件、组件和/或组。

除非相反定义,此处使用的所有术语(包括技术和科学术语)都具有该发明所属 领域的普通技术人员一般理解的相同的含义。进一步需要理解的是,术语,例如在通 常使用的字典中定义的术语,被解释为具有和相关领域的上下文中具有的含义相一致 的含义,并不被解释为理想化或过度形式的含义,除非此处明确地如此定义。

需要注意的是,在一些可选的实施方式中,模块中的功能/动作发生的顺序可能 与流程图中的不同。例如,显示的两个连续的模块实际可能被本质上并发地执行或有 时模块被以相反的顺序执行,取决于包括的功能/动作。

在下文中,将结合附图在细节上对本发明进行说明。

图1是根据本发明的一个实施方式的光线跟踪内核的框图。

参照图1,光线跟踪内核100可被主要划分为数据通路部分和存储器系统部分。 在一个实施方式中,光线跟踪内核100可被包含在诸如图形处理器等的芯片中。在另 一个实施方式中,光线跟踪内核100可实现在单独的芯片中。

数据通路部分包括设置处理单元110、光线生成单元120、多个T&I(遍历和交 叉)单元130、命中点计算单元140、阴影单元150和控制单元160。存储器系统部 分包括寄存器165、L1高速缓存170、L2高速缓存175、高速缓存180,缓冲器185、 栈190和存储器195。为了便于表述,图1所述的存储器系统部分的各个部件被分别 实现,但如果需要的话,部件中的至少一部分可通过物理上相同的存储器来实现。

同样,光线跟踪芯片100可被耦接到外部存储器1000,该外部存储器1000包括 AS(加速结构)存储单元1100、GD(几何数据)存储单元1200、纹理图像存储单 元1300和帧存储单元1400。

AS包括通常用于光线跟踪的BVH(包围盒层次)或kd树(k深度树)。GD包 括与用于光线跟踪的三角形有关的信息(在下文中,被称作三角形信息)。在一个实 施方式中,三角形信息可以包括三角形的三个点的纹理坐标和标准向量。

图9例示了在图1的光线跟踪芯片中的加速结构和几何数据之间的关系。

在图9中,AS(加速结构)假定利用kd树。kd树是一种空间划分树并被用于光 线三角形交叉测试。kd树包括盒节点(box node)910、内部节点920和叶节点930。 叶节点930包括用于定点(point)至少一个包括在几何数据中的三角形信息的三角形 列表。在一个实施方式中,当三角形信息被包括在几何数据中时,包括在叶节点930 中的三角形列表对应于数组索引。

图2和图3例示了光线跟踪的流程图。

在下文中,光线跟踪内核100的整个操作将会结合图1至3来进行说明。

设置处理单元110准备眼光线生成信息并选择准备好的眼光线生成信息或从阴 影单元150输出的阴影信息。眼光线生成信息包括用于眼光线生成的屏幕坐标值。用 于光线三角形命中点的阴影信息包括用于获得屏幕坐标值的光线索引、光线三角形命 中点的坐标值、光线三角形命中点的颜色值以及阴影光线类型。如果需要的话,阴影 信息可以进一步包括基于阴影光线类型的附加信息。阴影光线包括影子光线、第二光 线或空光线。第二光线包括折射光线或反射光线。在折射光线中,附加信息包括光线 三角形命中点的折射率(refraction ratio),在反射光线中,附加信息包括光线三角形 命中点的反射率。设置处理单元110的操作将会参考图4进行说明。

光线生成单元120可以基于眼光线生成信息或阴影信息来生成至少一个眼光线 (步骤S310或S340)。如图2所示,至少一个眼光线包括眼光线E、影子光线S、折 射光线F和/或反射光线R。当第二光线的数量大于等于2时,一个被输出到T&I单 元130,其他的被推入到第二光线栈190。在第二光线中,光线生成单元120会考虑 反射光线R的命中点或折射光线F的命中点。例如,当折射光线F和反射光线R都 被生成时,反射光线R会被输出到T&I单元130,折射光线F会被推入到第二光线 栈190。

当阴影类型对应于空光线时,光线生成单元120将被推入第二光线栈190的第二 光线弹出并将弹出的第二光线输出到T&I单元130。当第二光线栈190为空时,光线 生成单元120基于光线索引来获得屏幕坐标值,并将基于屏幕坐标值的颜色值和光线 三角形命中点得到的最终颜色值存储到颜色缓冲器185c中。

多个T&I单元130采用MIMD(多指令流多数据流)架构。多个T&I单元130 中的每一个接收光线,例如来自光线生成单元120的眼光线、影子光线或第二光线, 并检查是否存在与AS中的光线交叉的三角形。也就是说,多个T&I单元130中的每 一个都遍历AS并执行三角形交叉测试。多个T&I单元130的操作将会参考图5至 10进行说明。

命中点计算单元140为交叉的三角形计算光线三角形命中点的坐标值。光线三角 形命中点指示了在交叉的三角形中被光线命中的点。阴影单元150计算光线三角形命 中点的颜色值。在一个实施方式中,阴影单元150可以执行冯氏照明和纹理匹配来获 得光线三角形命中点的颜色值(步骤S340)。同样的,阴影单元150通过光线生成单 元120确定最终颜色值,或者为阴影光线生成阴影信息,并传送阴影信息给设置处理 单元110。当不再需要光线生成时,阴影光线类型对应于空光线。在一个实施方式中, 阴影单元150可以基于保存在材料存储器195c中的关于光线三角形命中点的材料信 息来确定第二光线生成。在下文中,数据通路的每个部件将会被说明。

<流水线控制架构>

光线跟踪算法被循环执行,包括(i)眼光线生成过程(步骤S310),(ii)AS遍 历过程(步骤S320),(iii)光线三角形交叉测试(步骤S330),(iv)阴影和阴影光 线生成过程(步骤S340)。因此,光线跟踪算法可能不适合使用常规的流水线架构。

本技术引入了适用于光线跟踪算法的流水线架构,控制单元160通过流水线(例 如,寄存器)165中的标志来控制流水线操作。也就是说,本技术采用了简单的基于 标志的控制机制来提高流水线效率。在一个实施方式中,流水线165中的标志可以对 应于1比特信息来表示开或关。当标志被打开时,流水线165可以存储前一阶段的信 息。其结果是,通过使用该标志,流水线165可以同步地执行它的过程并且数据通路 的每个部件都可以异步地输出它们的结果。如果需要的话,数据通路的每个部件都可 以使用缓冲器185来减少由于负载平衡导致的等待时间。例如,多个T&I单元130 中的每一个可以使用缓冲器185来改善性能和支持MIMD架构。

<设置处理单元110>

设置处理单元110初始化眼光线生成信息。在初始化过程中,设置处理单元110 确定屏幕坐标值并将确定的屏幕坐标值转换为光线索引。该光线索引用来减少每个流 水线阶段中的流水线(例如,寄存器165)的尺寸。设置处理单元110将屏幕坐标值 和光线索引发送到光线生成单元120。

设置处理单元110复用眼光线生成信息或阴影信息。在一个实施方式中,阴影信 息相比眼光线生成信息可以有更高的优先级。优选的是,为之前的屏幕坐标值的像素 中生成的光线提前进行。

图4例示了图1中的设置处理单元的基于块的光线生成顺序以及它的硬件。

屏幕包括多个m×n像素块(在下文中,被称为超级块)。m和n是偶数。每个 超级块包括N个像素块(在下文中,被称为子块)。N对应于多个T&I单元130的个 数。每个N像素块都为同样大小。

设置处理单元110将屏幕划分为多个块(也就是,子块)来提高高速缓存的命中 率并确定基于块的眼光线生成顺序。例如,屏幕可以包括多个超级块并且多个超级块 中每个被配置为16×16的像素块。每个超级块包括多个子块并且多个子块中的每个可 能包括4个8×8的像素块。第一到第四像素块410到440中的每一个被分配给第一到 第四T&I单元130a到130d。

在下文中,第一子块410对应于图4(b)中的8×8像素块,并被分配给第一T&I 单元130a。

设置处理单元110使用线性n比特计数器450来确定眼光线生成顺序从而提高高 速缓存的命中率。第一组线性n比特计数器450代表子块的x坐标值。第一组可以包 括至少一个非连续比特。第二组线性n比特计数器450代表子块的y坐标值。第二组 可以至少包括另一个非连续比特。就是说,第一和第二组互相排他。

如图4(b)和(c)所示,光线生成单元120基于由设置处理单元110确定的眼 光线生成顺序来生成光线。图4(b)中的像素(例如像素0)代表光线生成的像素。 例如,在64个像素中,设置处理单元110可以包括一个线性6比特计数器450。当 I=i5i4i3i2i1i0(I代表线性6比特计数器450的值)时,像素坐标(x,y)对应于(i5i3i1, i4i2i0)。就是说,线性6比特计数器450被实现来当计数器的数量增加时更简单的映 射。

<光线生成单元120>

光线生成单元120将屏幕坐标值和设置处理单元110确定的光线索引存储到光线 索引映射表195a中,并基于眼光线生成信息或阴影信息来生成至少一个光线,或将 最终颜色值存储到颜色缓冲器185a中。

当接收到眼光线生成信息时,光线生成单元120生成眼光线E。当接收到阴影信 息时,光线生成单元120根据阴影光线类型来生成阴影光线S、R或F,当阴影光线 类型对应于空光线时,光线生成单元120将被推入第二光线栈190的第二光线弹出。 当第二光线栈190为空时,光线生成单元120基于光线索引来获得屏幕坐标值,并将 获得的屏幕坐标值和光线三角形命中点存储到颜色缓冲器185c中。在下文中,光线 生成单元120的光线生成流程将会被说明。

在眼光线生成时,光线生成单元120使用光线索引映射表195a来找到眼光线E 的屏幕坐标值并基于该屏幕坐标值来生成眼光线E。一般来说,眼光线E基于屏幕坐 标值和摄像头(也就是,眼睛的位置)的位置来生成。光线生成单元120将生成的眼 光线分配给多个T&I单元130中的适当T&I单元(例如,130a)。

当阴影光线类型对应于影子光线时,在生成影子光线时,光线生成单元120基于 光线三角形命中点来生成影子光线。一般来说,影子光线可以基于屏幕坐标值和灯光 位置来生成。在一个实施方式中,为了减少计算量,光线生成单元120限制光源的数 量。

当阴影光线类型对应于第二光线时,在生成第二光线时,光线生成单元120生成 至少一个第二光线(也就是,折射光线和/或反射光线)。当至少一个第二光线的数量 大于等于2时,光线生成单元120将至少一个第二光线中的除一个之外的其他光线存 储到第二光线栈190中。光线生成单元120将未被存储的第二光线分配给多个T&I 单元130中的一个适当T&I单元(例如,130b)。存储在第二光线栈190中的第二光 线可能包括屏幕坐标值、方向向量值和RGB权重。在一个实施方式中,为了减少计 算量,光线生成单元120使用光线深度来防止无限制地由第二光线生成第二光线。

当阴影光线类型对应于空光线时,在生成空光线时,光线生成单元120将被推入 第二光线栈190的第二光线弹出并将弹出的第二光线分配给多个T&I单元130中的 一个适当T&I单元(例如,130c)。当第二光线栈190为空时,光线生成单元120基 于光线索引来获得屏幕坐标值,并将基于光线三角形命中点的颜色值得到的最终颜色 值存储到颜色缓冲器185c中。存储在颜色缓冲器185c中的最终颜色值被存储到外部 存储器1000。

<T&I单元130>

多个T&I单元130执行AS遍历过程(步骤S320)和光线三角形交叉测试过程 (步骤S330)。

图5例示了图1中的多个T&I单元130的框图。

参照图5,多个T&I单元130中的每一个包括缓冲器185、L1高速缓存170和 T&I流水线单元135。

多个T&I单元130采用MIMD架构并独立地由T&I流水线单元135执行。光线 跟踪算法可使用MIMD架构处理每个光线。MIMD架构相较于SIMD(单指令流多 数据流)架构在使用流水线效率方面有优势。

多个T&I单元130中的每一个包括它自身的输入缓冲器185a和输出缓冲器185b。 最好是从同一个像素生成的光线(例如,眼光线和阴影光线)由同一个T&I单元130 来处理。同样,多个T&I单元130中的每一个包括它自身的L1高速缓存170。这是 由于MIMD架构需要有效的缓存存储器。

T&I流水线单元135执行(i)遍历过程;(ii)三角形列表获取过程;(iii)光线 三角形交叉测试过程。AS假定对应于kd树。

在遍历过程中,T&I流水线单元135通过搜索AS中的节点来搜索与光线交叉的 叶节点。AS的遍历算法对相关领域的普通技术人员来说是公知的,对遍历算法的解 释在此省略。在三角形列表获取过程中,T&I流水线单元135读取包括在交叉的叶节 点中的三角形列表。在光线三角形交叉测试过程中,T&I流水线单元135读取三角形 列表的坐标信息并为给定的光线执行交叉测试。

图6和图7例示了图5中的T&I流水线单元。

光线追踪结构在[SCHMITTLER,J.,WALD,I.,AND SLUSALL P.2002.Saarcor: a hardware architecture for ray tracing.In Proceedings of the  IGGRAPH/EUROGRAPHICS conference on Graphics Hardware](在下文中,被称为参 考文献1)和[SCHMITTLER,J.,WOOP,S.,WAGNER,D.,PAUL,W.J.,AND  SLUSALLEK,P.,2004.Realtime ray tracing of dynamic scenes on an FPGA chip.In  Proceedings of the IGGRAPH/EUROGRAPHICS conference on Graphics Hardware](在 下文中,被称为参考文献2)中使用单独的硬件来遍历和交叉测试。然而,图5中的 T&I流水线单元135采用了统一的流水线结构来有效地支持AS避免遍历和交叉测试 之间的负载不平衡。也就是说,图7中的T&I流水线单元135可在遍历和交叉测试 的每个阶段使用相同的硬件。在下文中,本发明与参考文献1、2之间的区别将会被 说明。

在图6和图7中,假设AS对应于kd树。图6解释了T&I流水线135中执行的 遍历过程、在光线三角形交叉测试中使用的运算器和运算器的数量。遍历过程主要包 括光线盒交叉测试和遍历。在图9中,kd树的顶部节点910对应于盒节点。流水线 控制单元710控制T&I流水线单元135中的流水线。光线盒交叉测试、遍历和光线 三角形交叉测试的操作在[MOLLER,T.,AND TRUMBORE,B.1997Fast,minimum  storage ray-triangle intersection,Journal of Graphics Tools]中有详细说明。

在图6中,在光线盒交叉测试中顺序使用的运算器包括6个FADD(浮点加法 器)、6个FMUL(浮点乘法器)、3个第一FCOMP(浮点比较器)、2个第二FCOMP 和1个第三FCOMP。

在图6中,在遍历中顺序使用的运算器包括1个FADD、1个FMUL和2个 FCOMP。同样,在遍历中顺序使用的操作包括向栈存储器185d中推送入栈和从栈存 储器185d中弹出。

在图6中,在光线三角形交叉测试中顺序使用的运算器包括9个第一FADD、12 个第一FMUL、6个第二FADD、12个第二FMUL、4个TFADD(3元输入FADD)、 1个FADD和FDIV(浮点除法器)和2个FCOMP。

光线三角形交叉测试计算与给定光线有交叉的最近的三角形与眼睛位置(或摄像 头位置)的交叉点之间的距离。如果存在交叉的三角形,则将关于该交叉三角形的信 息发送至命中点计算单元140。否则的话,执行下一个遍历。在一个实施方式中,光 线三角形交叉测试可以使用[MOLLER,T.,AND TRUMBORE,B.1997.Fast,minimum  storage ray-triangle intersection.Journal of Graphics Tools]中的算法。

图7例示了用于执行三角形列表获取过程和光线三角形交叉测试过程的T&I流 水线单元的构造。

T&I流水线单元135使用统一的单独流水线来执行遍历过程、三角形列表获取过 程和光线三角形交叉测试过程。也就是说,710中的流水线阶段执行遍历过程和光线 三角形交叉测试过程,而其他阶段执行高速缓存访问或三角形列表获取过程。如图7 所示,本技术不使用单独的硬件,并采用统一的流水线架构。

<T&I单元130的存储器系统>

图8例示了图1中的T&I单元的存储器系统。

由于T&I单元130需要大量的存储器访问,所以需要有效地设计T&I单元130 的存储器系统。如图1和图5所示,多个T&I单元130中的每一个包括3个L1高速 缓存并使用公共的L2高速缓存。尽管使用了高速缓存的两层结构,但是由于高速缓 存未命中导致的流水线的停止时间仍然很高。因此,所述技术使用如下两种技术来解 决上述的问题。

第一种技术是关于L1高速缓存未命中,当L1高速缓存未命中发生时,L1高速 缓存未命中被绕开而不停止,从而使得L1高速缓存未命中在下一个循环中被解决。 在图5中,当高速缓存未命中在流水线P1中发生时,流水线控制单元710继续而不 停止到随后的流水线阶段P2。在未命中处理过程中,高速缓存控制器(未示出)访 问L2高速缓存185或外部存储器1000两者之一来获取数据。当流水线P1在流水线 P18后被再次执行时,发生了对L1高速缓存的访问。如果高速缓存未命中被解决了, 流水线控制单元710就正常执行后续的流水线P2,如果再次发生了高速缓存未命中, 流水线控制单元710就重复上述的过程直到高速缓存未命中被解决。作为结果,由于 高速缓存未命中带来的高速缓存未命中处罚可相当程度地被减缓。

第二种技术是关于L2高速缓存未命中,当L2高速缓存发生时,L2高速缓存未 命中被绕开而不停止。如果L1高速缓存未命中发生在当前光线中,则访问L2高速 缓存的需求被输入到L1地址FIFO 810。如果L2高速缓存访问命中,则地址和数据 被输入到L1地址/数据FIFO 820。否则的话,对外部存储器1000的其他需求被输入 到L2地址FIFO 830并且当前光线中的需求被删除。对删除需求的高速缓存的访问在 下一次循环中发生。如果在下次循环中发生高速缓存访问,则重复上述的过程。因此, 尽管由于对下一光线的需求在L2高速缓存访问中发生了未命中,但是由于对下一光 线的需求对L2高速缓存访问是允许的。作为结果,由于高速缓存未命中带来的高速 缓存未命中处罚可相当程度地被减缓。

图8展示了节点L1高速缓存170的例子,但L1列表高速缓存和L1数据线坐标 高速缓存可被相似地操作。

<命中点计算单元140和阴影单元150>

命中点计算单元140使用三角形与给定光线的向量值之间的距离来计算光线三 角形命中点的坐标值。该三角形由T&I单元130输出并被光线命中。由于一个光线 三角形命中点发生在一个光线中,所以命中点计算单元140可实现在T&I单元130 中。

阴影单元150使用存储在材料存储器195c和三角形信息高速缓存180中的信息 来计算光线三角形命中点的颜色值。材料存储器195c存储有与几何数据存储单元 1200中的三角形有关的材料信息。在一个实施方式中,材料信息可以包括纹理索引、 环境常量、扩散常数、反射常量、折射率(也就是,阿尔法值)、折射角等等。三角 形信息高速缓存180是几何数据存储单元1200的高速缓存,并存储有与在阴影阶段 需要的相应三角形有关的三角形信息。三角形信息可以进一步包括材料索引来参照材 料存储器195c。

阴影单元150通过冯氏照明和纹理匹配来计算光线三角形命中点的颜色值,将计 算得到的颜色值与阴影缓冲185e中的先前颜色相加,相加得到的颜色值被放入阴影 缓冲185e中。阴影缓冲185e存储根据给定像素和阴影信息生成的眼光线、影子光线 或第二光线的相加颜色值。

阴影信息用于确定对当前光线是否生成第二光线。阴影单元150基于在关于命中 三角形的三角形信息中包括的材料索引从材料存储器获取材料信息(也就是,反射率 和折射率)。如果反射率不为0,则光线生成单元120生成反射光线,如果折射率不 为0,则光线生成单元120生成折射光线。同样,光线生成单元120可以为光源生成 影子光线。阴影单元150将阴影信息发送给设置处理单元110。光线三角形命中点的 阴影信息包括坐标值、颜色值和阴影光线类型。

在一个实施方式中,冯氏照明采用了[HARRIS,D.2004,An exponentiation unit for  an opengl lighting engine.IEEE Transactions on Computer]中的架构。在一个实施方式 中,纹理匹配可以支持双线性滤波方案并从[HAKURA,Z.S.,AND GUPTA, A.1997.The design and analysis of a cache architecture for texture mapping.SIGARCH  Computer Architecture News]中选择高速缓存架构。

图10例示了包括图1中的光线跟踪内核的光线跟踪板。

参照图10,光线跟踪板2000包括第一和第二光线跟踪子板2010a和2010b。第 一光线跟踪子板2010a包括光线跟踪芯片2020a和2020b,第二光线跟踪子板2010b 包括光线跟踪芯片2020c和2020d。

光线跟踪内核2020基本上等同于图1中的光线跟踪内核,它们之间的区别将会 被说明。

主机中的CPU(中央处理单元)执行场景管理软件2005,该场景管理软件2005 创建AS,AS、几何数据和纹理数据通过USB接口和BFM(总线功能模型)发送到 每个光线跟踪芯片2020中的存储器(DRAM)2030a至2030d。然后,光线跟踪内核 2020开始执行。

第一光线跟踪芯片2010a作为控制端(master)。第一光线跟踪芯片2010a中的 XY生成器将块地址(也就是,图像的至少一个块)发送到一个适当的光线跟踪内核 (例如,空闲的光线跟踪芯片)2020。由XY生成器2040选择的光线跟踪内核2020 接收块地址,然后对预定的像素块执行表现操作。例如,预定的像素块可以对应于 16×16像素块。在表现完成后,光线跟踪内核2020从XY生成器2040处请求到XY 生成器2040的下一个块地址。每个光线跟踪内核2020中的最终颜色值通过 SRAM&LCD控制器2050被存储在SRAM 2060中。

本发明具有下述优点。然而,这并不意味着特定实施方式具有其所有的优点或仅 具有这些优点,且不能理解为,本公开的发明的权益范围由这些优点来限定。

根据一个实施方式的光线跟踪内核可支持MIMD(多指令流对数据流)架构来更 有效率地执行光线跟踪。

根据一个实施方式的光线跟踪内核采用统一的流水线架构从而能够适合于加速 结构来有效地执行在光线跟踪中使用的光线盒交叉、遍历和光线三角形交叉测试。

尽管本发明优选的实施方式已经为了说明的目的而被公开,但是本领域的技术人 员可以在不脱离本发明在伴随的权利要求中公开的范围和精神的情况下进行多种改 变、增加和替换。

附图说明

图1是根据本发明一个实施方式的光线跟踪内核的框图。

图2和图3例示了光线跟踪过程。

图4例示了图1中的设置处理单元的基于块的光线生成顺序以及它的硬件。

图5是例示了图1中的多个T&I单元130的框图。

图6和图7例示了图5中的T&I流水线单元。

图8例示了图1中的T&I单元的存储器系统。

图9例示了图1的光线跟踪芯片中的加速结构与几何数据之间的关系。

图10例示了包括图1中的光线跟踪内核的光线跟踪板。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号