CN113786617A - 应用体素数据进行射线检测的方法、系统、服务器及计算机可读存储介质 - Google Patents
应用体素数据进行射线检测的方法、系统、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113786617A CN113786617A CN202111163612.9A CN202111163612A CN113786617A CN 113786617 A CN113786617 A CN 113786617A CN 202111163612 A CN202111163612 A CN 202111163612A CN 113786617 A CN113786617 A CN 113786617A
- Authority
- CN
- China
- Prior art keywords
- voxel
- point
- scene
- points
- detection
- 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.)
- Withdrawn
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/64—Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种应用体素数据进行射线检测的方法、系统、服务器及计算机可读存储介质,将像素数据转化为体素数据,从而与GPU运算高度契合,相对于既有的CPU运算模式,以GPU为基础的数据运算方案性能要高2到3个数量级;使用体素数据进行高性能射线检测,用以感知环境,运算效率高。
Description
技术领域
本发明涉及游戏数据处理技术领域,尤其涉及一种应用体素数据进行射线检测的方法、系统、服务器及计算机可读存储介质。
背景技术
目前,为实现数据运算需求的并行化,创建相关新的数据结构,并实时快速的动态更新,为各种相关算法服务。而这些新的数据结构的创建、更新、修改,往往也需要适应于大规模并行加速。
游戏场景是电子游戏中一虚拟空间内所有场景元素的集合,包括地图地貌、建筑物、游戏角色、装备道具等内容。游戏用户所看到的游戏场景的界面往往以像素场景的方式展现,即按照像素的数据格式将游戏场景的内容展示在显示屏上。在多人竞技游戏中,需要对角色在游戏场景中的行为动作进行检测判断,以及游戏目标对象检测、路径导航等功能,涉及大量的数据运算。上述功能的实现均需要对起点与目标点之间的路径进行检测。
现有的技术手段中,上述计算任务中的逻辑判断及渲染前的图像数据预处理使用CPU进行,对于高实时性的竞技游戏来说,计算效率较低,无法满足业务需求。
发明内容
为了克服上述技术缺陷,本发明的目的在于提供一种运算效率更高的应用体素数据进行射线检测的方法、系统、服务器及计算机可读存储介质。
本发明公开了一种应用体素数据进行射线检测的方法,对起点和终点形成的路径进行射线检测,包括以下步骤:计算获取所述路径在体素场景中经过的n个点;同时对所述n个点进行计算,以索引到每个点在所述体素场景中对应的点,并检测其是否为实心点;若检测到所述n个点中有实心点,则输出第一检测结果;否则则输出第二检测结果;根据所述第一检测结果和所述第二检测结果获知所述路径是否有阻挡。
优选的,应用于像素场景,所述像素场景包括若干种不同数据类型的场景元素,将像素场景转换为体素场景的步骤包括:分别导出若干种所述场景元素的原始数据;设定期望的单元体素的边长,结合所述单元体素的边长,分别将若干种所述场景元素的原始数据转换为体素数据,所述体素数据在所述体素场景中表现为体素模块;根据所有所述场景元素的体素模块在所述像素场景中的相对位置,拼接所有所述场景元素的体素模块,获得体素场景。
优选的,所述像素场景为应用于游戏中的游戏世界,所述场景元素包括地形、植被、建筑和室外摆件;所述分别导出若干种所述场景元素的原始数据包括:导出所述室外摆件与所述建筑的3D模型文件格式数据和坐标信息;导出所述植被的逗号分隔值文件格式数据;通过深度相机正交拍摄以导出地形的图片,该图片中包含地形的表面高度数据。
优选的,所述设定期望的单元体素的边长,结合所述单元体素的边长、分别将若干种所述场景元素的原始数据转换为体素模块包括:通过开源库中的“读写三角网格”功能和“从三角网格创建”功能将所述室外摆件与所述建筑的所述3D模型文件格式数据转换为体素模块;获取所述植被的碰撞体大小,结合所述单元体素的边长,计算获取该植被在所述体素场景中需要占用的体素个数及形状;根据存储有所述地形的所述表面高度数据的所述图片,按照单元体素的边长逐点采样以将地形的所述表面高度数据转换为体素模块。
优选的,还包括:在GPU中对m条路径进行射线检测:所述m条路径包括m个起点和m个终点;同时计算获取每条所述路径在体素场景中经过的n个点;同时对m条路径中的所述n个点进行计算:根据体素场景中的坐标索引每个点在所述体素场景中对应的点,并检测其是否为实心点;若检测到所述n个点中有实心点,则输出该条路径的所述第一检测结果;否则输出该条路径的所述检测结果,以此获得m条路径的检测结果。
优选的,一检测区域包括x个检测目标和y个节点,对所述检测区域进行动态规划包括:同时对所述x个检测目标和y个节点所形成的x*y个路径进行射线检测,并保存检测结果;对所述检测区域在不同时间调取不同路径的所述检测结果以进行所述动态规划。
优选的,对多个检测区域进行动态规划包括:同时对不同所述检测区域的x*y个路径进行射线检测,并保存检测结果,形成以所述检测区域划分的检测结果表;对一检测区域进行所述动态规划时、则从所述检测结果表中调取所述检测区域的所述检测结果。
优选的,在GPU中,同时对所述n个点进行计算:根据体素场景中的坐标索引每个点在所述体素场景中对应的点,并检测其是否为实心点;若检测到所述n个点中有实心点,则输出第一检测结果;否则则输出第二检测结果。
本发明还公开了一种应用体素数据进行射线检测的系统,对起点和终点形成的路径进行射线检测,包括点捕捉模块、对照索引模块和判断模块;所述点捕捉模块计算获取所述路径在体素场景中经过的n个点;在GPU中,同时对所述n个点进行计算,通过所述对照索引模块以索引到每个点在所述体素场景中对应的点,并通过所述判断模块检测其是否为实心点;若检测到所述n个点中有实心点,则输出第一检测结果;否则则输出第二检测结果;根据所述第一检测结果和所述第二检测结果获知所述路径是否有阻挡。
本发明还公开了一种应用体素数据进行射线检测的服务器,对起点和终点形成的路径进行射线检测,包括点捕捉模块、对照索引模块和判断模块;所述点捕捉模块计算获取所述路径在体素场景中经过的n个点;同时对所述n个点进行计算,通过所述对照索引模块以索引到每个点在所述体素场景中对应的点,并通过所述判断模块检测其是否为实心点;若检测到所述n个点中有实心点,则输出第一检测结果;否则则输出第二检测结果;根据所述第一检测结果和所述第二检测结果获知所述路径是否有阻挡。
本发明还公开了一种存储应用体素数据进行射线检测的指令的计算机可读存储介质,所述指令在被执行时对起点和终点形成的路径进行射线检测,包括以下步骤:计算获取所述路径在体素场景中经过的n个点;同时对所述n个点进行计算,以索引到每个点在所述体素场景中对应的点,并检测其是否为实心点;若检测到所述n个点中有实心点,则输出第一检测结果;否则,则输出第二检测结果;根据所述第一检测结果和所述第二检测结果获知所述路径是否有阻挡。
采用了上述技术方案后,与现有技术相比,具有以下有益效果:
1、对于空间数据的计算,将空间数据转化为体素数据,从而与GPU运算高度契合,相对于既有的CPU运算模式,以GPU为基础的数据运算方案性能要高2到3个数量级;使用体素数据进行高性能射线检测,用以感知环境,运算效率高。
附图说明
图1为本发明提供的应用体素数据进行射线检测的方法流程图;
图2为本发明提供的将像素场景转换为体素场景的流程图;
图3为现有技术的像素场景;
图4为本发明提供的将图3的像素场景转换成的体素场景。
具体实施方式
以下结合附图与具体实施例进一步阐述本发明的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
参见附图1,本发明公开了一种应用体素数据进行射线检测的方法,对起点(x1,y1,z1)和终点(x2,y2,z2)形成的路径进行射线检测,包括以下步骤:
S100、计算获取路径在体素场景中经过的n个点(a1,b1,c1)、(a2,b2,c2)、...、(an,bn,cn);
S200、同时对n个点进行计算,以索引到每个点在体素场景中对应的点,并检测其是否为实心点;若检测到n个点中有实心点,则输出第一检测结果;否则则输出第二检测结果;
S300、根据第一检测结果和第二检测结果获知所述路径是否有阻挡。
体素是体积元素的简称,包含体素的立体可以通过立体渲染或者提取给定阈值轮廓的多边形等值面表现出来。体素是数字数据于三维空间分割上的最小单位,本发明所提及的单元体素可以理解为单个体素。体素用于三维成像、科学数据与医学影像等领域。概念上类似二维空间的最小单位:像素,像素用在二维计算机图像的影像数据上。有些真正的三维显示器运用体素来描述它们的分辨率,例如:可以显示512×512×512体素的显示器。
体素场景为由单元体素组成的三维空间,在该三维空间内,各个空间元素通过单元体素进行体现。
起点(x1,y1,z1)和终点(x2,y2,z2)之间的路径在同一条直线上,所谓射线检测即从起点(x1,y1,z1)向终点(x2,y2,z2)发出一条射线,两点之间行程一条射线路径。
索引可以理解为查找,在检测判断n个点是否为实心点时,首先需要“到达”这n个点,索引即是“到达”这一步骤。可以理解为计算机处理过程中的专有步骤。
通常,第一检测结果表现为有阻挡、不通的含义,第二检测结果表现为路径无阻挡物可以通过的含义。通行可以理解为目标物的空间意义上通行,此处的目标物在游戏中可以为游戏角色等可以进行动态运动的元素;还可以理解为信号的发送传递的畅通性。
例如,在游戏过程中,需要判断角色持枪是否可以击中远处一目标物,则检测起点为角色,终点为远处目标物。若检测结果为无阻挡物,则表明在当前的瞄准路径下,正常开枪将可以击中该远处目标物;若检测结果为有阻挡物,则表明在当前的瞄准路径下,正常开枪也无法击中该远处目标物。
另外,通常在CPU中,按顺序或者随机地对所述n个点中的每个点依次进行计算:根据坐标x、y、z索引每个点在体素场景中对应的点,并检测其是否为实心点;若检测到实心点,则停止计算,并输出第一检测结果;若计算完所有n个点,都没有检测到实心点,则输出第二检测结果,同样的根据第一检测结果和第二检测结果获知所述路径是否有阻挡。
在三维成像技术领域,通常采用以CPU为主的运算模式,即在CPU上进行各类逻辑任务运算及数据预处理,而GPU上更适合并发类的数据运算,如图像渲染。现有的空间数据结构与GPU的结合效果并不理想,故现有的空间数据结构无法体现GPU的高并发运算性能,本发明将用于三维成像的空间数据转化为体素数据,从而与GPU高并发运算特性高度契合,进行各类运算,相对于既有的CPU运算模式,以GPU为基础的数据运算方案性能要高2到3个数量级。从而使用体素数据进行高性能射线检测,用以感知环境,运算效率高。
具体的,参见附图2,本发明提供一种用于将像素场景转换为体素场景的具体实施例,将像素场景转换为体素场景的步骤在附图1对应实施例的步骤“计算获取所述路径在体素场景中经过的n个点(a1,b1,c1)、(a2,b2,c2)、...、(an,bn,cn)”之前,具体包括:
S400、分别导出像素场景包括的若干种不同数据类型的场景元素的原始数据;
S500、设定期望的单元体素的边长,结合单元体素的边长,分别将若干种场景元素的原始数据转换为体素数据,体素数据在体素场景中表现为体素模块;
S600、根据所有场景元素的体素模块在像素场景中的相对位置,拼接所有场景元素的体素模块,获得体素场景。
在本实施例中,像素场景为UE4游戏引擎建立的游戏的游戏世界,该游戏为电子游戏,可运行于手机、平板电脑、计算机等设备上。参见附图3,在该游戏世界中,场景元素包括地形、植被、建筑和室外摆件。地形如土坡、山丘,河流等;植被如树木、花草、灌木等;建筑如房屋、仓库等;室外摆件如油罐、平台等。附图3中的所有场景都是以像素的形式展现的,每个元素由一个个像素块组成。
而不同的场景元素在构建时所用到的数据类型是不同的。根据场景元素的类型及其特征,采用不同的方式从UE4游戏引擎中分别导出不同场景元素的原始数据。具体的:
室外摆件与建筑在UE4游戏引擎中属于包含StaticMesh的Actor类型,可直接导出OBJ文件,同步导出Actor的坐标信息;OBJ文件即为3D模型文件;
植被在UE4中不属于独立的Actor类型,故需要采取记录坐标和形状的方式,导出为CSV信息文件;CSV信息文件即为逗号分隔值文件;
地形在体素场景中只利用到了表面高度信息,本发明采取深度相机正交拍摄的方式则可以导出地形的图片数据。
由于场景元素的类型及其特征不同,故需要采取不同的转换方式以将不同场景元素的各类原始数据转换为在体素场景中表现为体素模块的体素数据,首先需要设定我们所期望的单元体素的边长,一个体素模块包括一个或若干个单元体素,结合单元体素的边长、分别将若干种场景元素的数据转换为体素模块,具体的:
对于OBJ文件,可以借助OPEN3D这一开源库中的“读写三角网格”(read_triangle_mesh)功能和“从三角网格创建”(create_from_triangle_mesh)功能直接将OBJ文件转换为体素模块;OPEN3D并不为本发明的限制的开源库,其他可以实现上述两功能的开源库也可以被用于进行数据转换;
对于植被,需要根据植被的碰撞体的大小,结合体素的边长,直接计算出它在体素场景中占用的体素模块的个数及形状;
地形在体素场景中只占一层,参见图4中的D区域,根据储存有高度信息的图片数据,按照单元体素的边长逐点采样以将其转换为体素模块。
至此已获取到建立体素场景的所有数据,最后需要拼接所有场景元素的体素模块,获得所有场景元素的体素场景。
体素场景在程序中表示为大量的三维坐标点,拼接体素模块的原理实际上是根据体素模块在游戏地图中的相对位置,把表示体素模块的坐标点信息,整合到同一个数据结构中,而UE4游戏引擎本身包含各个模块的位置信息和旋转信息,故在拼接时需要特别注意3D模型的欧拉角的旋转变换在不同体系中规则不一致的问题。
经过拼接获得图4所示的体素场景,在该体素场景中,使用三维张量完备的表达三维世界的空间信息,其采样精度决定了空间分辨率。体素数据格式规范、整齐,易于计算、特别是并行计算,故本发明将体素数据应用于GPU射线检测,可以实现高速的多路径并发运算,可以理解为,在GPU中,使用体素数据进行多条射线检测的时间与检测一条射线的时间相同,故可以极大缩短多条射线检测的时间。
在其他实施例中,体素场景还可为其他应用场景,在该其他应用场景中,场景元素将不仅仅包括地形、植被、建筑和室外摆件,或区别于地形、植被、建筑和室外摆件的其他场景元素。而对应的,对该其他场景元素的数据导出及体素数据的转换将可能采用区别于本实施例的方法,此处并不限制。
需要说明的是,并不意味着体素数据只可用于在GPU中进行计算,在CPU中,依然可以使用体素数据进行计算,只不过,在射线检测时无法并行计算,只能多个路径检测任务依次执行。
下面提供一GPU并行实现单个路径射线检测的实例:
1)使用射线检测方法算出起点(x1,y1,z1)和终点(x2,y2,z2)在体素场景中需要经过的n个点(a1,b1,c1)、(a2,b2,c2)、...、(an,bn,cn);所谓射线检测方法,即从起点开始向终点发出射线,起点与终点之间存在一线段,该线段上的点即需要经过的n个点。
2)将n个点放入数组A(数组元素个数为n,每个数组元素包含体素场景坐标信息,即三维坐标(x、y、z)信息);
3)在GPU中,对数组A中的每个点同时进行计算,即n个线程并发,在每个线程都执行如下过程:
根据体素场景中的坐标索引体素数据中的点,并检测是否为实心点。具体地,体素场景中每个坐标点都具备属性值,该属性值若为1,则表示该坐标点上存在物体或物体的一部分,如游戏角色、建筑物等物体会占据大量坐标位置,这些被占据的位置的坐标点的属性均为1;相应的,若该属性值为0,则表示该坐标点上没有物体,即为空旷场景。若检测到实心点,则往结果中写1,即第一检测结果,表明该线程被阻挡;若没有检测到实心点,则往结果中写0,即第二检测结果,表明该线程所对应的路径无阻挡物可以通过。
下面提供一GPU并行实现多个射线检测的实例:
1)对于m个射线检测任务,有m对起点和终点,将他们放入数组B(数组元素个数为m,每个数组元素包含起点和终点);
2)在GPU中,对数组B中的每对起点和终点同时进行计算,即m个父线程并发,在每个线程都执行如下过程:
a.对起点(x1,y1,z1)和终点(x2,y2,z2)进行射线检测,
b.使用射线检测方法算出其在体素场景中需要经过的n个点(a1,b1,c1)、(a2,b2,c2)、...、(an,bn,cn);
c.将n个点放入数组A’(数组元素个数为n,每个数组元素包含体素场景坐标信息,即三维坐标(x、y、z)信息);
d.在GPU中,对数组A中的每个点同时进行计算,即n个子线程并发,在每个子线程都执行如下过程(此时是针对每个父线程再并发n个子线程,即总共n*m个线程):根据体素场景中的坐标索引体素数据中的点,并检测是否为实心点;若检测到实心点,则往结果中写1,表明该子线程所对应的路径被阻挡;若没有检测到实心点,则往结果中写0,表明该子线程所对应的路径无阻挡物可以通过;
3)收集m条射线的检测结果。
本发明在处理器RTX3090和AMD threadriper 3990X上测得:在同时进行100万条以及以上射线检测时,GPU的检测速度为单个CPU核心的约550倍,运算速度获得明显的提升。
在体素场景中通常需要进行动态规划,用于计算导航任务,输出结果为路径。在一个动态规划任务中,包括若干个待探索的节点,需要说明的是,该节点为任务过程意义上的节点,不代表数据中的具体指代。在某些实施例中,节点可以是某个具体的体素场景坐标点。对动态规划来说,节点的探索是有先后的,探索节点时是否需要射线检测、以及对哪些目标进行射线检测都是未知的,则形成了一个时间序列任务。本发明由于使用GPU可以进行并行化时间分散任务:
1)预估动态规划将会用到的检测区域;
2)对检测区域中的所有节点、以及每个节点需要检测射线的所有检测目标都进行射线检测,假设有x个检测目标,y个节点,则有x*y个路径,也就是共有x*y个并行检测任务;其中,检测目标可以是一个体素场景坐标点,如游戏世界中某个目标对象或场景建筑外表上的一个坐标点。
3)保存检测结果;
4)当动态规划算法执行时,只需要查询已经运算好的检测结果即可。
由于存储指定检测区域的射线检测结果所占据存储空间很小,一个结果最多占用一个字节,1MB即可存储100万条检测结果,故本发明的动态规划算法任务的执行效率较高,只需要读取的时间即可。
较佳的,还存在需要对多个检测主体同时进行动态规划,在该检测主体中包括若干个检测目标,即同时对不同检测目标所对应的检测区域的x*y个路径进行射线检测,并保存检测结果,形成以检测区域划分的检测结果表;对一检测区域进行动态规划时、则从检测结果表中调取所述检测区域的检测结果即可。
例如,需要对区域A、区域B、区域C和区域D进行动态规划,则同时对每个区域的x*y个路径进行射线检测,检测时间仅为单个射线检测时间t。
将检测结果保存,区域A的检测结果为a,区域B的检测结果为b,区域C的检测结果为c,区域D的检测结果为d,形成A-a、B-b、C-c、D-d的检测结果表,当对区域A进行动态规划时,则调取结果a即可。
不论是存在多个检测目标,还是多个检测主体,射线检测时间都仅为单个射线检测时间t。后续在动态规划的实际过程中进行及时读取即可,运算速度十分快速。
本发明还公开了一种应用体素数据进行射线检测的系统,用于对起点(x1,y1,z1)和终点(x2,y2,z2)形成的路径进行射线检测,包括点捕捉模块、对照索引模块和判断模块。
点捕捉模块计算获取路径在体素场景中经过的n个点(a1,b1,c1)、(a2,b2,c2)、...、(an,bn,cn)。
在GPU中,同时对n个点进行计算:通过对照索引模块根据体素场景中的坐标索引每个点在体素场景中对应的点,并通过判断模块检测其是否为实心点;若检测到n个点中有实心点,则输出第一检测结果;否则,则输出第二检测结果;根据第一检测结果和第二检测结果获知所述路径是否有阻挡。
该系统包括硬件结构和计算机可读存储介质,上述功能模块可以集成在硬件结构上,也可集成在计算机可读存储介质上,此处并不限制。且上述功能模块的连接关系可以是有形连接,也可以是跨区域的无形连接,此处并不限制。
本发明还公开了一种应用体素数据进行射线检测的服务器,用于对起点(x1,y1,z1)和终点(x2,y2,z2)形成的路径进行射线检测,包括点捕捉模块、对照索引模块和判断模块。
点捕捉模块计算获取路径在体素场景中经过的n个点(a1,b1,c1)、(a2,b2,c2)、...、(an,bn,cn)。
在GPU中,同时对n个点进行计算:通过对照索引模块根据体素场景中的坐标索引每个点在体素场景中对应的点,并通过判断模块检测其是否为实心点;若检测到n个点中有实心点,则输出第一检测结果;否则,则输出第二检测结果;根据第一检测结果和第二检测结果获知所述路径是否有阻挡。
本发明还公开了一种应用体素数据进行射线检测的计算机可读存储介质,用于对起点(x1,y1,z1)和终点(x2,y2,z2)形成的路径进行射线检测,包括点捕捉模块、对照索引模块和判断模块。
点捕捉模块计算获取路径在体素场景中经过的n个点(a1,b1,c1)、(a2,b2,c2)、...、(an,bn,cn)。
在GPU中,同时对n个点进行计算:通过对照索引模块根据体素场景中的坐标索引每个点在体素场景中对应的点,并通过判断模块检测其是否为实心点;若检测到n个点中有实心点,则输出第一检测结果;否则,则输出第二检测结果;根据第一检测结果和第二检测结果获知所述路径是否有阻挡。
该计算机可读存储介质可以集成在硬件上,当硬件运行时,该计算机可读存储介质可以被支持运行。
应当注意的是,本发明的实施例有较佳的实施性,且并非对本发明作任何形式的限制,任何熟悉该领域的技术人员可能利用上述揭示的技术内容变更或修饰为等同的有效实施例,但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改或等同变化及修饰,均仍属于本发明技术方案的范围内。
Claims (11)
1.一种应用体素数据进行射线检测的方法,其特征在于,对起点和终点形成的路径进行射线检测,包括以下步骤:
计算获取所述路径在体素场景中经过的n个点;
同时对所述n个点进行计算,以索引到每个点在所述体素场景中对应的点,并检测其是否为实心点;若检测到所述n个点中有实心点,则输出第一检测结果;否则,则输出第二检测结果;
根据所述第一检测结果和所述第二检测结果获知所述路径是否有阻挡。
2.根据权利要求1所述的方法,其特征在于,应用于像素场景,所述像素场景包括若干种不同数据类型的场景元素,将像素场景转换为体素场景的步骤包括:
分别导出若干种所述场景元素的原始数据;
设定期望的单元体素的边长,结合所述单元体素的边长,分别将若干种所述场景元素的原始数据转换为体素数据,所述体素数据在所述体素场景中表现为体素模块;
根据所有所述场景元素的体素模块在所述像素场景中的相对位置,拼接所有所述场景元素的体素模块,获得体素场景。
3.根据权利要求2所述的方法,其特征在于,所述像素场景为应用于游戏中的游戏世界,所述场景元素包括地形、植被、建筑和室外摆件;
所述分别导出若干种所述场景元素的原始数据包括:
导出所述室外摆件与所述建筑的3D模型文件格式数据和坐标信息;
导出所述植被的逗号分隔值文件格式数据;
通过深度相机正交拍摄以导出地形的图片,该图片中包含地形的表面高度数据。
4.根据权利要求3所述的方法,其特征在于,所述设定期望的单元体素的边长,结合所述单元体素的边长、分别将若干种所述场景元素的原始数据转换为体素模块包括:
通过开源库中的“读写三角网格”功能和“从三角网格创建”功能将所述室外摆件与所述建筑的所述3D模型文件格式数据转换为体素数据;
获取所述植被的碰撞体大小,结合所述单元体素的边长,计算获取所述植被在所述体素场景中需要占用的体素个数及体素形状;
根据存储有所述地形的所述表面高度数据的所述图片,按照单元体素的边长逐点采样以将地形的所述表面高度数据转换为体素数据。
5.根据权利要求1所述的方法,其特征在于,还包括:在GPU中对m条路径进行射线检测:
所述m条路径包括m个起点和m个终点;同时计算获取每条所述路径在体素场景中经过的n个点;
同时对m条路径中的所述n个点进行计算:根据体素场景中的坐标索引每个点在所述体素场景中对应的点,并检测其是否为实心点;若检测到所述n个点中有实心点,则输出所述路径的所述第一检测结果;否则输出所述路径的所述第二检测结果,以此获得m条路径的检测结果。
6.根据权利要求5所述的方法,其特征在于,还包括:
一检测区域包括x个检测目标和y个节点,对所述检测区域进行动态规划,包括:
同时对所述x个检测目标和y个节点所形成的x*y个路径进行射线检测,并保存检测结果;
对所述检测区域在不同时间调取不同路径的所述检测结果以进行所述动态规划。
7.根据权利要求6所述的方法,其特征在于,还包括:
对多个检测区域进行动态规划,包括:
同时对不同所述检测区域的x*y个路径进行射线检测,并保存检测结果,形成以所述检测区域划分的检测结果表;
对一检测区域进行所述动态规划时、则从所述检测结果表中调取所述检测区域的所述检测结果。
8.根据权利要求1所述的方法,其特征在于,在GPU中,同时对所述n个点进行计算:根据体素场景中的坐标索引每个点在所述体素场景中对应的点,并检测其是否为实心点;若检测到所述n个点中有实心点,则输出第一检测结果;否则则输出第二检测结果。
9.一种应用体素数据进行射线检测的系统,其特征在于,对起点和终点形成的路径进行射线检测,包括点捕捉模块、对照索引模块和判断模块;
所述点捕捉模块计算获取所述路径在体素场景中经过的n个点;
同时对所述n个点进行计算,通过所述对照索引模块索引到每个点在所述体素场景中对应的点,并通过所述判断模块检测其是否为实心点;若检测到所述n个点中有实心点,则输出第一检测结果;否则则输出第二检测结果;
根据所述第一检测结果和所述第二检测结果获知所述路径是否有阻挡。
10.一种应用体素数据进行射线检测的服务器,其特征在于,对起点和终点形成的路径进行射线检测,包括点捕捉模块、对照索引模块和判断模块;
所述点捕捉模块计算获取所述路径在体素场景中经过的n个点;
同时对所述n个点进行计算,通过所述对照索引模块索引到每个点在所述体素场景中对应的点,并通过所述判断模块检测其是否为实心点;若检测到所述n个点中有实心点,则输出第一检测结果;否则则输出第二检测结果;
根据所述第一检测结果和所述第二检测结果获知所述路径是否有阻挡。
11.一种存储应用体素数据进行射线检测的指令的计算机可读存储介质,其特征在于,所述指令在被执行时对起点和终点形成的路径进行射线检测,包括以下步骤:
计算获取所述路径在体素场景中经过的n个点;
同时对所述n个点进行计算,以索引到每个点在所述体素场景中对应的点,并检测其是否为实心点;若检测到所述n个点中有实心点,则输出第一检测结果;否则,则输出第二检测结果;
根据所述第一检测结果和所述第二检测结果获知所述路径是否有阻挡。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163612.9A CN113786617A (zh) | 2021-09-30 | 2021-09-30 | 应用体素数据进行射线检测的方法、系统、服务器及计算机可读存储介质 |
PCT/CN2022/122494 WO2023051671A1 (zh) | 2021-09-30 | 2022-09-29 | 基于体素数据的数据处理方法、服务器、介质及计算机程序产品 |
CN202280020323.XA CN116963811A (zh) | 2021-09-30 | 2022-09-29 | 基于体素数据的数据处理方法、服务器、介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163612.9A CN113786617A (zh) | 2021-09-30 | 2021-09-30 | 应用体素数据进行射线检测的方法、系统、服务器及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113786617A true CN113786617A (zh) | 2021-12-14 |
Family
ID=78877686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111163612.9A Withdrawn CN113786617A (zh) | 2021-09-30 | 2021-09-30 | 应用体素数据进行射线检测的方法、系统、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113786617A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023051671A1 (zh) * | 2021-09-30 | 2023-04-06 | 上海莉莉丝互娱网络科技有限公司 | 基于体素数据的数据处理方法、服务器、介质及计算机程序产品 |
-
2021
- 2021-09-30 CN CN202111163612.9A patent/CN113786617A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023051671A1 (zh) * | 2021-09-30 | 2023-04-06 | 上海莉莉丝互娱网络科技有限公司 | 基于体素数据的数据处理方法、服务器、介质及计算机程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114004941B (zh) | 一种基于神经辐射场的室内场景三维重建系统及方法 | |
US10977818B2 (en) | Machine learning based model localization system | |
KR102610030B1 (ko) | 큐보이드 검출을 위한 딥 러닝 시스템 | |
Yang et al. | Image-based 3D scene reconstruction and exploration in augmented reality | |
CN108898676B (zh) | 一种虚实物体之间碰撞及遮挡检测方法及系统 | |
EP3547256B1 (en) | Extracting a feature descriptor for an image feature | |
CN103988226B (zh) | 用于估计摄像机运动以及用于确定实境三维模型的方法 | |
JP5093053B2 (ja) | 電子カメラ | |
JP2021520579A (ja) | オブジェクトのロード方法及び装置、記憶媒体、電子装置、並びにコンピュータプログラム | |
US20130095920A1 (en) | Generating free viewpoint video using stereo imaging | |
CN106340036A (zh) | 一种基于双目立体视觉的立体匹配方法 | |
Santos et al. | 3D plant modeling: localization, mapping and segmentation for plant phenotyping using a single hand-held camera | |
CN109298629A (zh) | 用于为自主和非自主位置意识提供鲁棒跟踪的容错 | |
CN109920055A (zh) | 三维视觉地图的构建方法、装置与电子设备 | |
JP2011095797A (ja) | 画像処理装置、画像処理方法及びプログラム | |
CN109255749A (zh) | 自主和非自主平台中的地图构建优化 | |
JP2016537901A (ja) | ライトフィールド処理方法 | |
WO2023051671A1 (zh) | 基于体素数据的数据处理方法、服务器、介质及计算机程序产品 | |
WO2022048468A1 (zh) | 平面轮廓识别方法、装置、计算机设备和存储介质 | |
CN115035235A (zh) | 三维重建方法及装置 | |
CN113877210A (zh) | 游戏场景的转换方法、系统、服务器及计算机可读存储介质 | |
CN113223078A (zh) | 标志点的匹配方法、装置、计算机设备和存储介质 | |
CN115035162A (zh) | 基于视觉slam的监控视频人员定位跟踪方法及系统 | |
CN111415420A (zh) | 空间信息确定方法、装置及电子设备 | |
Condorelli et al. | A comparison between 3D reconstruction using nerf neural networks and mvs algorithms on cultural heritage images |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211214 |