CN109215106A - 一种基于动态场景的实时光线追踪加速结构的方法 - Google Patents
一种基于动态场景的实时光线追踪加速结构的方法 Download PDFInfo
- Publication number
- CN109215106A CN109215106A CN201811002620.3A CN201811002620A CN109215106A CN 109215106 A CN109215106 A CN 109215106A CN 201811002620 A CN201811002620 A CN 201811002620A CN 109215106 A CN109215106 A CN 109215106A
- Authority
- CN
- China
- Prior art keywords
- scene
- bvh
- light
- tree
- bounding box
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供一种基于动态场景的实时光线追踪加速结构的方法,涉及计算机图形学技术领域。该方法在图像渲染过程中首先对场景中的物体进行复杂度分类,再利用AABB包围盒以及内包围盒分别对不同复杂度的物体建立不同的包围盒,利用自顶向下和自底向上这两种构建方式相结合的方法构建BVH树,渲染出图。本发明提供的方法能减少光线求交次数,提高光线追踪算法效率,加快场景的渲染速度,非常适用于动态场景的实时渲染等方面,可将该方法应用于图像渲染优化等研究领域。
Description
技术领域
本发明涉及计算机图形学技术领域,尤其涉及一种基于动态场景的实时光线追踪加速结构的方法。
背景技术
渲染是指利用软件将场景模型等信息生成图像的过程,是一项非常重要的技术。光线追踪技术是一种图像合成技术,也是真实感图形学领域中的重要算法,它通过模拟光线与物体表面的交点来实现图像的绘制,是一个在二维(2D)屏幕上呈现三维(3D)图像的方法。光线追踪是根据光学的能量传播的原理,模拟光线在场景中实际传播的过程:从摄像机发出光线,模拟光线在场景中折射、反射等传播情况,并不断计算获得的能量,同时不断迭代,直到达到收敛条件为止。这种方法计算出的图像具有绝对的真实性,可合成高品质的复杂3D场景。然而,由于光线追踪技术在使用中需要考虑全局因素,光源发出的每条光线都必须要与场景中包含的每一个多边形进行求交运算,这会耗费大量的计算资源。单纯的将传统的光线追踪技术用于场景渲染,效果不理想,效率也较低,不能实现实时场景的渲染。但时至今日,实时网游和影视化产业迅猛发展,仅仅基于静态场景的渲染已经远不能满足人们的需求。然而,已有的基于静态场景的渲染数据结构难以满足场景的实时绘制。因此,实现动态场景的实时光线追踪渲染是一个重要的研究方向。
包围盒加速技术是光线追踪算法中最早的加速技术之一,是利用几何特性简单的包围盒将渲染场景中的物体包围起来,利用这些包围盒与光线求交速度较快的思想预先判断光线与场景中的物体是否相交,从而以较小的代价去除与光线不相交的物体,以达到提高算法效率的目的,是加速光线追踪算法的关键步骤之一。在对场景进行空间划分的方法中,最常用的就是KD-tree(k-dimensional树的简称)和BVH-tree(Bounding VolumeHierarchies的简称),但针对动态场景,BVH-tree的性能优于KD-tree,但传统BVH算法需要很大的时间开销,这阻碍了在场景发生动态变化时BVH-tree的快速重建,这就需要对传统BVH-tree算法进行改进。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于动态场景的实时光线追踪加速结构的方法,能减少光线求交次数,提高光线追踪算法效率,加快场景的渲染速度,非常适用于动态场景的实时渲染等方面,可将该方法应用于图像渲染优化等研究领域。
为解决上述技术问题,本发明所采取的技术方案是:
一种基于动态场景的实时光线追踪加速结构的方法,包括以下步骤:
步骤1:读取场景中的3D模型,将读取数据储存在GPU显存中,并保存这些3D模型的面片、顶点数量信息;
步骤2:利用步骤1中保存的场景3D模型物体的面片、顶点数量信息对场景中的3D模型进行复杂度分类,具体方法为:
首先针对不同场景设置场景的***阈值,然后对场景中的所有3D物体进行复杂度分类,若该3D物体的面片顶点数值大于该阈值,则将该物体分类到复杂物体类别中;若该3D物体的面片顶点数小于等于该阈值,则将该物体分类到简单物体类别中;
步骤3:根据步骤2中的分类结果,复杂物体利用内包围盒的构造方法,简单物体利用轴对齐包围盒的构造方法,分别为场景中的所有3D物体建立各自的包围盒;
步骤4:根据场景中的模型分布,分别求出模型X轴、Y轴和Z轴的跨度,并利用坐标轴SAH机制划分空间;
步骤5:利用自顶向下和自底向上两种方式相结合的方法构建BVH-tree,首先采用自顶向下的方法对单个物体创建叶子节点,逐层迭代直至创建完整的BVH树形结构;
步骤6:BVH-tree构建完毕后,输出BVHlist数组;
步骤7:从视点出发,判断从视点发出的光线与场景中物体是否相交,将当前光线与BVH树的节点中的包围盒做相交测试,每条光线为一条射线,表示为:R=E+T*D,其中E为视点(0,0,0,),D为射线的防线,T为射线与某个空间结构相交时的参数;
如果当前光线与BVH节点不相交,则表明当前光线没有与场景相交,则结束当前光线的光线追踪;如果当前光线与BVH节点相交,判断该BVH节点中是否有图元,如果有,则说明当前光线与场景中的物体有相交,要继续对该条光线进行追踪;如果该BVH节点中没有图元,则当前光线没有与场景中的物体相交,结束当前光线的光线追踪;递归的判断从视点出发的每条光线,直至判断完成后,输出渲染图片;
步骤8:当场景发生动态变化时,底层单个物体的原有包围盒逻辑结构不发生变化,利用自顶向下的树构建方法快速更新底层数据结构,之后将场景中每个物体的包围盒作为一个节点,采用自底向上的方式快速更新BVH-tree,并生成新的BVHlist数组;
步骤9:更新BVH-tree结构后,重复步骤7的相交测试,直至渲染成功出图。
采用上述技术方案所产生的有益效果在于:本发明提供的基于动态场景的实时光线追踪加速结构的方法,在图像渲染过程中首先对场景中的物体进行复杂度分类,再利用AABB包围盒以及内包围盒分别对不同复杂度的物体建立不同的包围盒,从而达到减少光线求交次数,提高光线追踪算法效率的目的;同时,利用BVH树自顶向下和自底向上这两种构建方式相结合的方法,简化了动态场景中BVH树的构建和更新的方式。在动态场景的渲染过程中,可以提高算法效率,加快场景的渲染速度,非常适用于动态场景的实时渲染等方面,可以将这种方法应用于图像渲染优化等研究领域。
附图说明
图1为本发明实施例提供的基于动态场景的实时光线追踪加速结构的方法流程图;
图2是本发明实施例提供的包围盒构造方法流程图;
图3是本发明实施例提供的BVH树构建方法流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本实施例的方法如下所述。
步骤1:读取场景中的3D模型,将这些数据储存在GPU显存中,并保存这些3D模型的面片、顶点数量信息。
步骤2:利用步骤1中保存的场景3D模型物体的面片、顶点数量信息对场景中的3D模型进行复杂度分类。如图2所示,首先针对不同场景设置场景的***阈值,然后对场景中的所有3D物体进行复杂度分类,若该3D物体的面片顶点数值大于该阈值,则将该物体分类到复杂物体类别中;若该3D物体的面片顶点数小于等于该阈值,则将该物体分类到简单物体类别中。
步骤3:根据步骤2中的分类结果,复杂物体利用内包围盒的构造方法,简单物体利用AABB包围盒(轴对齐包围盒Axially-aligned的简称)的构造方法,分别为场景中的所有3D物体建立各自的包围盒。
内包围盒技术的原理是在传统包围盒里面建立一个新的包围盒,且这两个包围盒之间存在一定的联系,通常将传统包围盒成为外包围盒,将新建立的包围盒成为内包围盒。光线与外包围盒相交后会存在两个交点,设为P1(X1,Y1,Z1)和P2(X2,Y2,Z2),内包围盒就是以线段P1P2为对角线建立起来的,并且内包围盒的面分别于坐标平面相平行。
AABB包围盒又称为轴对齐包围盒,该包围盒的每一条边都平行于一个坐标平面,在渲染场景中构建的AABB包围盒就是一个简单的六面体。
步骤4:根据场景中的模型分布,分别求出模型X轴、Y轴和Z轴的跨度,并利用坐标轴SAH机制划分空间。因为SAH假设光线是随机发射的,利用该种方法可以得到具有更高平衡性的BVH-tree。
步骤5:利用自顶向下和自底向上两种方式相结合的方法构建BVH-tree,如图3所示,首先采用自顶向下的方法对单个物体创建叶子节点,逐层迭代直至创建完整的BVH树形结构。
步骤6:BVH-tree构建完毕,输出BVHlist数组。
步骤7:从视点出发,判断从视点发出的光线与场景中物体是否相交,将当前光线与BVH树的节点中的包围盒做相交测试,每条光线为一条射线,表示为:R=E+T*D,其中E为视点(0,0,0,),D为射线的防线,T为射线与某个空间结构相交时的参数。如果当前光线与BVH节点不相交,则表明当前光线没有与场景相交,则结束当前光线的光线追踪;如果当前光线与BVH节点相交,判断该BVH节点中是否有图元,如果有,则说明当前光线与场景中的物体有相交,要继续对该条光线进行追踪;如果该BVH节点中没有图元,则当前光线没有与场景中的物体相交,结束当前光线的光线追踪;递归的判断从视点出发的每条光线,直至判断完成后,输出渲染图片。
步骤8:当场景发生动态变化时,底层单个物体的原有包围盒逻辑结构不发生变化,利用自顶向下的树构建方法快速更新底层数据结构,之后将场景中每个物体的包围盒作为一个节点,采用自底向上的方式快速更新BVH-tree,并生成新的BVHlist数组。
步骤9:更新BVH-tree结构后,重复步骤7的相交测试,直至渲染成功出图。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (2)
1.一种基于动态场景的实时光线追踪加速结构的方法,其特征在于:该方法包括以下步骤:
步骤1:读取场景中的3D模型,将读取数据储存在GPU显存中,并保存这些3D模型的面片、顶点数量信息;
步骤2:利用步骤1中保存的场景3D模型物体的面片、顶点数量信息对场景中的3D模型进行复杂度分类;
步骤3:根据步骤2中的分类结果,复杂物体利用内包围盒的构造方法,简单物体利用轴对齐包围盒的构造方法,分别为场景中的所有3D物体建立各自的包围盒;
步骤4:根据场景中的模型分布,分别求出模型X轴、Y轴和Z轴的跨度,并利用坐标轴SAH机制划分空间;
步骤5:利用自顶向下和自底向上两种方式相结合的方法构建BVH-tree,首先采用自顶向下的方法对单个物体创建叶子节点,逐层迭代直至创建完整的BVH树形结构;
步骤6:BVH-tree构建完毕后,输出BVHlist数组;
步骤7:从视点出发,判断从视点发出的光线与场景中物体是否相交,将当前光线与BVH树的节点中的包围盒做相交测试,每条光线为一条射线,表示为:R=E+T*D,其中E为视点(0,0,0,),D为射线的防线,T为射线与某个空间结构相交时的参数;
如果当前光线与BVH节点不相交,则表明当前光线没有与场景相交,则结束当前光线的光线追踪;如果当前光线与BVH节点相交,判断该BVH节点中是否有图元,如果有,则说明当前光线与场景中的物体有相交,要继续对该条光线进行追踪;如果该BVH节点中没有图元,则当前光线没有与场景中的物体相交,结束当前光线的光线追踪;递归的判断从视点出发的每条光线,直至判断完成后,输出渲染图片;
步骤8:当场景发生动态变化时,底层单个物体的原有包围盒逻辑结构不发生变化,利用自顶向下的树构建方法快速更新底层数据结构,之后将场景中每个物体的包围盒作为一个节点,采用自底向上的方式快速更新BVH-tree,并生成新的BVHlist数组;
步骤9:更新BVH-tree结构后,重复步骤7的相交测试,直至渲染成功出图。
2.根据权利要求1所述的基于动态场景的实时光线追踪加速结构的方法,其特征在于:所述步骤2中复杂度分类的具体方法为:
首先针对不同场景设置场景的***阈值,然后对场景中的所有3D物体进行复杂度分类,若该3D物体的面片顶点数值大于该阈值,则将该物体分类到复杂物体类别中;若该3D物体的面片顶点数小于等于该阈值,则将该物体分类到简单物体类别中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811002620.3A CN109215106B (zh) | 2018-08-30 | 2018-08-30 | 一种基于动态场景的实时光线追踪加速结构的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811002620.3A CN109215106B (zh) | 2018-08-30 | 2018-08-30 | 一种基于动态场景的实时光线追踪加速结构的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109215106A true CN109215106A (zh) | 2019-01-15 |
CN109215106B CN109215106B (zh) | 2023-01-03 |
Family
ID=64986804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811002620.3A Active CN109215106B (zh) | 2018-08-30 | 2018-08-30 | 一种基于动态场景的实时光线追踪加速结构的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109215106B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113255251A (zh) * | 2021-07-14 | 2021-08-13 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种真实感冰型的渲染方法 |
CN113298925A (zh) * | 2021-04-14 | 2021-08-24 | 江苏理工学院 | 一种基于光线路径复用的动态场景渲染加速方法 |
US11120611B2 (en) | 2019-08-22 | 2021-09-14 | Microsoft Technology Licensing, Llc | Using bounding volume representations for raytracing dynamic units within a virtual space |
CN113781625A (zh) * | 2020-06-10 | 2021-12-10 | 辉达公司 | 适用于光线追踪的基于硬件的技术 |
WO2023116559A1 (en) * | 2021-12-21 | 2023-06-29 | Huawei Technologies Co., Ltd. | Method and apparatus for supporting image rendering using ray tracing |
WO2023221683A1 (zh) * | 2022-05-20 | 2023-11-23 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2649745A1 (en) * | 2006-04-19 | 2007-11-01 | Mental Images Inc. | Instant ray tracing |
WO2009063319A2 (en) * | 2007-11-15 | 2009-05-22 | Mental Images Gmbh | Shallow bounding volume hierarchies for accelerated ray tracing |
CN108090947A (zh) * | 2018-01-03 | 2018-05-29 | 沈阳品尚科技有限公司 | 一种面向3d场景的光线追踪优化方法 |
-
2018
- 2018-08-30 CN CN201811002620.3A patent/CN109215106B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2649745A1 (en) * | 2006-04-19 | 2007-11-01 | Mental Images Inc. | Instant ray tracing |
WO2009063319A2 (en) * | 2007-11-15 | 2009-05-22 | Mental Images Gmbh | Shallow bounding volume hierarchies for accelerated ray tracing |
CN108090947A (zh) * | 2018-01-03 | 2018-05-29 | 沈阳品尚科技有限公司 | 一种面向3d场景的光线追踪优化方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11120611B2 (en) | 2019-08-22 | 2021-09-14 | Microsoft Technology Licensing, Llc | Using bounding volume representations for raytracing dynamic units within a virtual space |
CN113781625A (zh) * | 2020-06-10 | 2021-12-10 | 辉达公司 | 适用于光线追踪的基于硬件的技术 |
CN113781625B (zh) * | 2020-06-10 | 2024-03-15 | 辉达公司 | 适用于光线追踪的基于硬件的技术 |
CN113298925A (zh) * | 2021-04-14 | 2021-08-24 | 江苏理工学院 | 一种基于光线路径复用的动态场景渲染加速方法 |
CN113298925B (zh) * | 2021-04-14 | 2023-07-11 | 江苏理工学院 | 一种基于光线路径复用的动态场景渲染加速方法 |
CN113255251A (zh) * | 2021-07-14 | 2021-08-13 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种真实感冰型的渲染方法 |
CN113255251B (zh) * | 2021-07-14 | 2021-09-17 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种真实感冰型的渲染方法 |
WO2023116559A1 (en) * | 2021-12-21 | 2023-06-29 | Huawei Technologies Co., Ltd. | Method and apparatus for supporting image rendering using ray tracing |
US11783528B2 (en) | 2021-12-21 | 2023-10-10 | Huawei Technologies Co., Ltd. | Method and apparatus for supporting an image rendering using ray tracing |
WO2023221683A1 (zh) * | 2022-05-20 | 2023-11-23 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109215106B (zh) | 2023-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109215106A (zh) | 一种基于动态场景的实时光线追踪加速结构的方法 | |
US8004518B2 (en) | Combined spatial index for static and dynamic objects within a three-dimensional scene | |
US7773087B2 (en) | Dynamically configuring and selecting multiple ray tracing intersection methods | |
US11954790B2 (en) | Web-side real-time hybrid rendering method, device and computer equipment combined with ray tracing | |
US7940265B2 (en) | Multiple spacial indexes for dynamic scene management in graphics rendering | |
US8018453B2 (en) | Deferred acceleration data structure optimization for improved performance | |
CN102289845B (zh) | 一种三维模型绘制方法以及装置 | |
CN106469463B (zh) | 一种基于cpu与gpu混合的渲染方法 | |
US8339398B2 (en) | Integrated acceleration data structure for physics and ray tracing workload | |
US20140002458A1 (en) | Efficient rendering of volumetric elements | |
KR20080018404A (ko) | 게임 제작을 위한 배경 제작 프로그램을 저장한 컴퓨터에서읽을 수 있는 기록매체 | |
CN106776028A (zh) | 一种基于gpu的光线跟踪方法 | |
US8102389B2 (en) | Box casting using an integrated acceleration data structure | |
CN102193837A (zh) | 一种基于前线的包围盒碰撞检测方法 | |
CN105184843A (zh) | 一种基于OpenSceneGraph的三维动画制作方法 | |
KR100568562B1 (ko) | 연속체 유체역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법 | |
Macedo et al. | Fast and realistic reflections using screen space and GPU ray tracing—a case study on rigid and deformable body simulations | |
Liu et al. | Lightweight Web3D crowd rendering for online massive conferencing | |
KR101228118B1 (ko) | 다각형 중요도에 기반을 둔 교차 검사 가속화 자료 구조 구성 방법 | |
US11861785B2 (en) | Generation of tight world space bounding regions | |
Liu et al. | scheme of dynamic clouds generation for 3d real time flight simulation | |
US11893677B1 (en) | Bounding volume hierarchy (BVH) widening based on node compressibility | |
US20240104824A1 (en) | Accelerated bounding volume hierarchy (bvh) traversal for ray tracing | |
Wang | Construction of Internet Game Development Environment based on OpenGL and Augmented Reality | |
Süß et al. | Asynchronous Parallel Reliefboard Computation for Scene Object Approximation. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |