CN111340949B - 3d虚拟环境的建模方法、计算机设备及存储介质 - Google Patents

3d虚拟环境的建模方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN111340949B
CN111340949B CN202010434608.0A CN202010434608A CN111340949B CN 111340949 B CN111340949 B CN 111340949B CN 202010434608 A CN202010434608 A CN 202010434608A CN 111340949 B CN111340949 B CN 111340949B
Authority
CN
China
Prior art keywords
agent
virtual environment
data
ray
type
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.)
Active
Application number
CN202010434608.0A
Other languages
English (en)
Other versions
CN111340949A (zh
Inventor
郭仁杰
王宇舟
武建芳
杨木
张弛
杨正云
李宏亮
刘永升
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Super Parameter Technology Shenzhen Co ltd
Original Assignee
Super Parameter Technology Shenzhen Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Super Parameter Technology Shenzhen Co ltd filed Critical Super Parameter Technology Shenzhen Co ltd
Priority to CN202010434608.0A priority Critical patent/CN111340949B/zh
Publication of CN111340949A publication Critical patent/CN111340949A/zh
Application granted granted Critical
Publication of CN111340949B publication Critical patent/CN111340949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请公开了一种3D虚拟环境的建模方法、计算机设备及存储介质,该方法包括:获取3D虚拟环境对应的模型数据;基于所述模型数据以及与所述3D虚拟环境交互的Agent的空间坐标,进行脱屏渲染获取深度图;获取所述Agent位于的局部环境对应的切面图,所述切面图用于表征所述局部环境的空间信息;获取所述Agent相对于所述3D虚拟环境的射线图,所述射线图用于表征所述Agent与至少一个射线方向上的环境对象之间的距离;根据所述深度图、所述切面图和所述射线图进行所述3D虚拟环境建模。由于结合了深度图、切面图和射线图,充分地表达3D虚拟环境的空间信息;而且也没有RGB图像那么大的数据量,可以进行大批量快速仿真,因此,实现了充分、高效地进行3D虚拟环境建模。

Description

3D虚拟环境的建模方法、计算机设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种3D虚拟环境的建模方法、计算机设备及存储介质。
背景技术
随着科技发展,对3D(three dimensional ,三维)虚拟环境的建模被广泛应用于3D游戏、虚拟交通、自动驾驶仿真、机器人轨迹规划等各领域,在3D虚拟空间中进行AI(Artificial Intelligence,人工智能)仿真具有非常大的商业价值。
目前,对3D虚拟环境的建模方式比较局限,一般是通过RGB图像,三维激光雷达、传感器测障等作为特征输入进行建模,特征对3D虚拟环境的表达并不足够充分。比如,以RGB图像作为特征输入,RGB图像不能充分表达3D虚拟环境的空间信息,而且,RGB图像的获取需要专门提供相应接口,RGB图像本身数据量比较大,无法进行大批量快速仿真。因此,如何充分、高效地进行3D虚拟环境建模成为亟需解决的问题。
发明内容
本申请实施例提供一种3D虚拟环境的建模方法、计算机设备及存储介质,可以实现充分、高效地进行3D虚拟环境建模。
第一方面,本申请实施例提供了一种3D虚拟环境的建模方法,包括:
获取3D虚拟环境对应的模型数据;
基于所述模型数据以及与所述3D虚拟环境交互的Agent的空间坐标,进行脱屏渲染获取深度图;
基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent位于的局部环境对应的切面图,所述切面图用于表征所述局部环境的空间信息;
基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent相对于所述3D虚拟环境的射线图,所述射线图用于表征所述Agent与至少一个射线方向上的环境对象之间的距离;
根据所述深度图、所述切面图和所述射线图进行所述3D虚拟环境建模。
第二方面,本申请实施例还提供了一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如上述的3D虚拟环境的建模方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时使所述处理器实现上述的3D虚拟环境的建模方法。
本申请实施例提供了一种3D虚拟环境的建模方法、计算机设备及计算机可读存储介质,通过获取3D虚拟环境对应的模型数据,基于模型数据以及Agent的空间坐标,进行脱屏渲染获取深度图,并基于模型数据以及Agent的空间坐标,获取Agent位于的局部环境对应的切面图(切面图用于表征局部环境的空间信息),以及基于模型数据以及Agent的空间坐标,获取Agent相对于3D虚拟环境的射线图(射线图用于表征Agent与至少一个射线方向上的环境对象之间的距离),进而根据深度图、切面图和射线图进行3D虚拟环境建模。由于结合了深度图、切面图和射线图,充分地表达3D虚拟环境的空间信息;而且也没有RGB图像那么大的数据量,可以进行大批量快速仿真,因此,实现了充分、高效地进行3D虚拟环境建模。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种3D虚拟环境的建模方法的步骤示意流程图;
图2是图1中的3D虚拟环境的建模方法的子步骤流程示意图;
图3是本申请实施例中获取的深度图的示意图;
图4是图2中的3D虚拟环境的建模方法的子步骤流程示意图;
图5是图1中的3D虚拟环境的建模方法的子步骤流程示意图;
图6是图5中的3D虚拟环境的建模方法的子步骤流程示意图;
图7是本申请实施例提供的获取不同高度的切面图的示意图;
图8是图1中的3D虚拟环境的建模方法的子步骤流程示意图;
图9是本申请实施例提供的第二相交线段与平面相交的示意图;
图10是本申请实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
目前,对3D虚拟环境的建模方式比较局限,一般是通过RGB图像,三维激光雷达、传感器测障等作为特征输入进行建模,特征对3D虚拟环境的表达并不足够充分。比如,以RGB图像作为特征输入,RGB图像不能充分表达3D虚拟环境的空间信息,而且,RGB图像的获取需要专门提供相应接口,RGB图像本身数据量比较大,无法进行大批量快速仿真。
为了解决上述问题,本申请的实施例提供了一种3D虚拟环境的建模方法、计算机设备及计算机可读存储介质,用于实现充分、高效地进行3D虚拟环境建模。其中,该3D虚拟环境的建模方法可以应用于服务器中,该服务器可以为单台的服务器,也可以为由多台服务器组成的服务器集群。
请参阅图1,图1是本申请一实施例提供的3D虚拟环境的建模方法的流程示意图。
如图1所示,该3D虚拟环境的建模方法具体包括步骤S101至步骤S105。
S101、获取3D虚拟环境对应的模型数据。
比如在人工智能(Artificial Intelligence,AI)、3D虚拟环境下的机器人仿真、机械臂、无人驾驶、虚拟交通仿真等各种应用场景,或者是3D类型游戏中的游戏AI,为了实现快速高效的仿真,在建立3D虚拟环境的AI模型时,服务器获取3D虚拟环境的AI模型对应的模型数据,其中,模型数据包括但不限于3D虚拟环境的环境数据,如3D虚拟环境中障碍物空间信息等。3D虚拟环境的AI模型中包括Agent,Agent是指宿主于复杂动态环境中,自治地感知环境信息,自主采取行动,并实现一系列预先设定的目标或任务的智能体。
在一实施例中,当检测到建模开始指令时,服务器调用待建模的3D虚拟环境的AI模型对应的模型数据,其中,该建模开始指令用于控制服务器开始调用3D虚拟环境的AI模型对应的模型数据,该建模开始指令可以由用户实时触发,也可以由服务器定时触发,本申请对此不作具体限定。
在一实施例中,获取3D虚拟环境对应的模型数据,包括:对所述3D虚拟环境对应的obj文件进行解析,获取所述3D虚拟环境对应的所述模型数据,所述模型数据包括点数据和面数据。
在构建3D虚拟环境的AI模型时,3D虚拟环境的AI模型对应的模型数据可选存储为obj文件,obj文件是3D模型文件格式,是一种文本文件。在进行建模时,服务器调用待建模的3D虚拟环境的AI模型对应的obj文件,例如通过UE4(Unreal Engine 4,虚幻4引擎)导出obj文件,并对该obj文件进行解析,获取到3D虚拟环境的AI模型对应的模型数据。其中,该模型数据包括但不限于点数据、面数据,比如点坐标、三角形坐标等等。
S102、基于所述模型数据以及与所述3D虚拟环境交互的Agent的空间坐标,进行脱屏渲染获取深度图。
其中,深度图是物体的三维表示形式,类似于人眼看到的真实世界的灰度图,深度图中每个像素点的值代表了Agent到该像素点的相对距离。服务器在获取到待建模的3D虚拟环境的AI模型对应的模型数据后,根据该模型数据,也即3D虚拟环境的点坐标、三角形坐标等,以及Agent的空间坐标,进行脱屏渲染获取深度图。
在一实施例中,如图2所示,步骤S102包括:子步骤S1021和子步骤S1022。
S1021、根据所述模型数据进行模型第一类格子划分,并将每个第一类格子对应的第一类子数据存放于缓存中。
在获取深度图的具体过程中,服务器首先根据待建模的3D虚拟环境的AI模型对应的模型数据,将3D虚拟环境的AI模型进行格子划分,划分为各个不同的格子,其中,每个格子对应着3D虚拟环境的AI模型的部分模型数据。为了便于区分描述,下文将深度图操作中划分的格子称为第一类格子,将第一类格子对应的部分模型数据称为第一类子数据。比如,服务器根据3D虚拟环境的AI模型大小、服务器资源等实际情况进行与当前实际情况适宜的相应大小的第一类格子划分。之后,服务器基于所划分的各个第一类格子,将各个第一类格子对应的第一类子数据存放于相应的缓存中。
例如,服务器将第一类格子对应的第一类子数据存放于系统的内存缓存当中。需要说明的是,服务器也可以将第一类格子对应的第一类子数据存放于专门设置的缓存中,本申请对此不作具体限制。
S1022、基于所述Agent的所述空间坐标,访问所述缓存中相应的第一类子数据,进行脱屏渲染获取所述深度图。
将3D虚拟环境的AI模型进行第一类格子划分后,Agent是位于部分第一类格子中,服务器基于Agent的空间坐标,访问存储于缓存中的相应第一类子数据,也即获取划分的相应第一类格子对应的第一类子数据。例如,获取Agent所位于的部分第一类格子以及相邻第一类格子对应的第一类子数据。服务器基于访问的第一类子数据,进行脱屏渲染获取深度图,例如,如图3所示。
需要说明的是,不同于脱屏渲染的方式,服务器也可以基于第一类子数据,进行常规的渲染操作获取深度图。只是,脱屏渲染可以在屏幕缓冲区以外的缓冲区进行渲染操作,渲染操作不必在当前用于显示的屏幕缓冲区中进行。
在一实施例中,将每个第一类格子对应的第一类子数据存放于缓存中,包括:将每个第一类格子对应的第一类子数据以list形式存放于所述缓存中,其中,每个list对应有唯一的标识id。
为了避免重复渲染,加速深度图生成效率,在进行第一类子数据缓存时,将每个第一类格子对应的第一类子数据以list形式存放于缓存中。其中,预先设置每个list对应有唯一的标识id。每个list中缓存至少一个第一类格子对应的第一类子数据。
在一实施例中,如图4所示,子步骤S1022包括:子步骤S10221和子步骤S10222。
S10221、基于所述Agent的所述空间坐标,确定所述Agent对应第一类格子的第一list对应的第一标识id。
Agent是位于部分第一类格子中,服务器基于Agent的空间坐标,确定出Agent对应第一类格子的第一类子数据缓存于的list,基于预先设置的list与标识id的唯一对应关系,确定Agent对应第一类格子的第一类子数据缓存于的list对应的标识id。为了便于描述,下文将Agent对应第一类格子的第一类子数据缓存于的list称为第一list,将第一list对应的标识id称为第一标识id。
S10222、根据确定的所述第一标识id,访问所述第一标识id对应的第一list缓存的第一类子数据,进行脱屏渲染获取深度图。
服务器基于确定的第一标识id,访问该第一标识id对应的第一list缓存的第一类子数据,也即访问包含Agent的空间坐标在内的相应第一类格子对应的第一类子数据。之后通过基于第一标识id访问获取的第一类子数据进行脱屏渲染获取深度图。服务器通过标识id访问对应空间区域的模型数据,因而避免了重复渲染,加速了深度图生成效率。
示例性的,脱屏渲染获取深度图后,服务器将该深度图保存。例如,服务通过操作相应的位图接口,将渲染好的深度图对应的模型信息读取到内存中。
通过深度图可以有效地表达3D虚拟环境的空间信息,比如3D虚拟环境下的障碍物信息等。
需要说明的是,除了通过深度图来表达3D虚拟环境的空间信息以外,也可以通过点云图替代深度图,通过点云图也可以在保证精度的同时,实现快速对3D虚拟环境建模。具体地,服务器在脱屏渲染获取深度图后,将深度图经过坐标转换计算为点云数据,生成对应的点云图。例如,根据内外参矩阵变换公式将深度图经过坐标转换得到点云图,具体计算公式如下:
x=(u-cx)*z/fx,y=(v-cy)*z/fy,z=d/s;
其中,fx、fy、cx、cy是相机的内标定参数,[x,y,z]是三维点坐标,[u,v,d]是该三维点在深度图中对应的像素坐标。
S103、基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent位于的局部环境对应的切面图,所述切面图用于表征所述局部环境的空间信息。
除了脱屏渲染获取深度图,服务器还获取Agent位于的局部环境对应的切面图,其中,切面图用于表征Agent所在的局部环境的空间信息。具体地,服务器是基于3D虚拟环境的AI模型对应的模型数据以及Agent的空间坐标,将Agent所在的局部环境对应的模型映射到二维平面,来生成切面图。
在一实施例中,如图5所示,步骤S103包括:子步骤S1031至子步骤S1034。
S1031、根据所述模型数据进行模型第二类格子划分,并将每个第二类格子对应的第二类子数据分别缓存于不同list中,其中,每个list对应有唯一的标识id。
与生成深度图的操作类似,服务器根据待建模的3D虚拟环境的AI模型对应的模型数据,将3D虚拟环境的AI模型进行不同于第一类格子的第二类格子划分,其中,每个第二类格子对应着3D虚拟环境的AI模型的部分模型数据。为了便于区分描述,下文将第二类格子对应的部分模型数据称为第二类子数据。
之后,服务器基于所划分的各个第二类格子,将各个第二类格子对应的第二类子数据进行缓存。在进行第二类子数据缓存时,将每个第二类格子对应的第二类子数据以list形式存放于缓存中,将每个第二类格子对应的第二类子数据分别缓存于不同list中。其中,预先设置每个list对应有唯一的标识id。
S1032、基于所述Agent的所述空间坐标,确定所述Agent对应第二类格子的第二list对应的第二标识id。
服务器基于Agent的空间坐标,确定出Agent位于的第二类格子对应的list,为了便于描述,下文将确定的第二类格子对应的list称为第二list。基于预先设置的list与标识id的唯一对应关系,确定第二list对应的标识id。为了便于区分描述,下文将第二list对应的标识id称为第二标识id。
S1033、根据确定的所述第二标识id,获取与所述Agent对应第二类格子相邻的邻近格子的第三list对应的第三标识id。
服务器基于确定的第二标识id,同时获取Agent对应第二类格子相邻的邻近格子的list对应的标识id。为了便于区分描述,下文将第二类格子相邻的邻近格子的list称为第三list,将第三list对应的标识id称为第三标识id。可以理解的是,由于第二类格子相邻的邻近格子包括多个,因此服务器获取到多个邻近格子的第三list对应的多个第三标识id。例如,服务器获取以Agent对应第二类格子为中心的九宫格的第三list对应的多个第三标识id。
S1034、访问所述第三标识id对应的第三list中缓存的第二类子数据,并根据所述第二类子数据,获取所述切面图。
根据获取到的一个或多个第三list对应的第三标识id,服务器访问该一个或多个第三标识id对应的第三list中缓存的第二类子数据,也即获取Agent周围环境对应的点数据、面数据等信息,比如获取九宫格的点数据、面数据等信息。之后通过获取的该一个或多个第三标识id对应的第三list中缓存的第二类子数据,将其映射到二维平面,生成切面图。
在一些实施例中,如图6所示,子步骤S1034包括:子步骤S10341和子步骤S10342。
S10341、基于所述Agent各个部位对应的高度,遍历所述第三list中缓存的所述第二类子数据,获取每个高度对应水平面的第一相交线段。
服务器基于Agent的空间坐标,确定Agent各个部位对应的高度。例如,以Agent为对弈类游戏中的NPC(Non-Player Character,非玩家角色)为例,服务器基于NPC的空间坐标,确定出NPC各个部位对应的高度。
基于Agent各个部位对应的高度,针对于其中的每个高度,服务器遍历获取的第三list中缓存的相应第二类子数据,将遍历获取到的第二类子数据映射到二维的水平面,获取每个高度对应二维的水平面的相交线段。为了便于区分描述,下文将每个高度对应二维的水平面的相交线段称为第一相交线段。
例如,服务器基于Agent各个部位对应的高度,针对于其中的每个高度,遍历Agent周围九宫格对应的点数据、面数据等,根据遍历获取的点数据、面数据,求取出其映射到二维的水平面至少一条第一相交线段。
S10342、将每个高度对应水平面的所述第一相交线段映射到同一平面上,获取每个高度的切面图。
通过上一步骤求取到每个高度对应水平面的至少一条第一相交线段后,服务器将每个高度对应水平面的至少一条第一相交线段映射到同一平面上,生成每个高度对应的切面图。例如,如图7所示,Agent各个部位对应的高度包括第一高度、第二高度和第三高度,服务器将第一高度对应水平面的所有第一相交线段映射到同一平面上,获取第一高度的切面图如图7中的切面701所示,服务器将第二高度对应水平面的所有第一相交线段映射到同一平面上,获取第二高度的切面图如图7中的切面702所示,服务器将第三高度对应水平面的所有第一相交线段映射到同一平面上,获取第三高度的切面图如图7中的切面703所示。
示例性的,服务器可以基于访问第三list中缓存的第二类子数据,例如Agent周围九宫格的点数据、面数据,调用 cvFillPoly接口,对切面图进行填充。其中,cvfillpoly接口用于画出并填充一个不规则的多边形,具体地,调用 cvFillPoly接口,cvfillpoly接口基于接收到的数据,组成封闭的多边形并在封闭的多边形内部填充相应颜色。
通过切面图可以精确地表达3D虚拟环境下,Agent周围环境的空间信息,比如Agent所在的小范围内的障碍物信息。
S104、基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent相对于所述3D虚拟环境的射线图,所述射线图用于表征所述Agent与至少一个射线方向上的环境对象之间的距离。
除了上述说明的获取深度图和切面图以外,服务器还获取Agent相对于3D虚拟环境的射线图,例如,获取Agent相对于3D虚拟环境中障碍物的射线图。其中,射线图用于表征Agent与一个或多个射线方向上的3D虚拟环境中环境对象之间的距离,环境对象包括但不限于3D虚拟环境的AI模型中的NPC、障碍物等等。射线图可以更充分表达Agent的远距离障碍物信息。具体地,服务器是基于3D虚拟环境的AI模型对应的模型数据以及Agent的空间坐标,将3D虚拟环境的AI模型看成一个AABB盒,通过AABB盒检测,水平映射筛选Agent对应射线与三角形相交关系,来生成切面图。
其中,AABB盒,也叫包围盒,在3D空间中的一个简单的六面体,在AABB盒中的每一个坐标点的坐标值都处于AABB盒的最大值与最小值范围内,也即都不大于AABB盒的最大值,不小于AABB盒的最小值。AABB盒是一个简单的几何空间,里面可以包含着复杂形状的物体,为物体添加包围体的目的是快速的进行碰撞检测,或者进行精确的碰撞检测之前进行过滤,即只有当与AABB盒碰撞,才进行精确碰撞检测和处理。
在一实施例中,如图8所示,步骤S104包括:子步骤S1041至子步骤S1046。
S1041、基于所述Agent的所述空间坐标,获取不同高度、不同方向的各个射线对应的线数据。
服务器根据Agent的空间坐标,基于Agent各个不同部位对应的高度,以及不同的方向,获取不同高度、不同方向的各个射线对应的线数据,其中,线数据包括但不限于射线的起点坐标、射线方向、除起点以外的其他点坐标等。
S1042、根据所述各个射线对应的线数据以及所述模型数据,确定所述各个射线与所述3D虚拟环境的第二相交线段。
之后,服务器基于所获取的不同高度、不同方向的各个射线对应的线数据,以及3D虚拟环境的AI模型对应的模型数据,计算确定出不同高度、不同方向的各个射线与3D虚拟环境的AI模型位于模型内的相交线段。为了与在切面图操作中的相交线段区分开来,将不同高度、不同方向的各个射线与3D虚拟环境的AI模型位于模型内的相交线段称为第二相交线段。
具体地,将3D虚拟环境的AI模型作为一个AABB盒,服务器分别检测判断不同高度、不同方向的各个射线与该AABB盒是否有交点。若判断其中某个射线与该AABB盒没有交点,则服务器继续判断其他射线与该AABB盒是否有交点,直至判断出每个射线与该AABB盒是否有交点为止。若射线与该AABB盒交点,则服务器获取该射线的起点与交点之间的第二相交线段,也即将该射线不在AABB盒内的部分裁剪掉。
S1043、根据所述模型数据中的面数据,将所述第二相交线段映射到二维平面,判断所述第二相交线段与所述面数据对应平面是否有交点;若是,则执行步骤S1044;若否,则执行步骤S1047。
S1044、判断所述交点是否位于所述面数据构成的三角形内部;若是,则执行步骤S1045;若否,则执行步骤S1047。
S1045、获取所述交点与对应射线的起点之间的距离。
S1046、根据所述距离以及对应射线的线数据,生成所述射线图。
S1047、结束操作。
服务器根据上一步骤中获取的所有第二相交线段,将每条第二相交线段映射到二维平面,并根据3D虚拟环境的AI模型对应的模型数据中的面数据,求取在二维平面下,每条第二相交线段与面数据对应的各个平面是否有交点,也即判断每条第二相交线段与obj文件中所有面数据对应的平面是否有交点。具体地,如图9所示,以某条第二相交线段PQ和某个平面ABC为例,服务器首先根据平面ABC对应的面数据,计算求取平面ABC的法向量n,再采用叉乘将AP、 QP分别映射到法向量n所在的方向,获得 AP映射到法向量n所在的方向的长度t,以及QP映射到法向量n所在的方向的长度d,将t与d进行对比,若t > d, 则第二相交线段PQ与平面ABC没有交点;反之,若t ≤ d,则第二相交线段PQ与平面ABC有交点。
若第二相交线段与面数据对应的某个平面没有交点,则按照上述方式继续判断第二相交线段与obj文件中的其他平面是否有交点,直至判断出每条第二相交线段与obj文件中的面数据对应的所有平面是否有交点。若第二相交线段与面数据对应的某个平面有交点,则进一步判断交点是否位于面数据构成的三角形内部,仍以第二相交线段PQ和平面ABC为例,在第二相交线段PQ和平面ABC有交点时,服务器通过质心坐标系原理,进一步判断其交点是否位于平面ABC对应于AABB盒的相交三角形ABC内部。具体地,设定三角形ABC所对应的平面ABC表示为:M=(1−λ1−λ2)a+λ1b+λ2c,服务器通过质心坐标系原理,判断交点是否在三角形ABC内部,若交点在三角形ABC内部,那么λ1和λ2的取值都在(0,1)范围内。
对于交点在三角形内部的第二相交线段,服务器进一步根据交点坐标,以及第二相交线段对应射线的起点坐标,计算处交点与射线的起点之间的距离。例如,若起点坐标为(X1,Y1,Z1)、交点坐标为(X2,Y2,Z2),采用计算公式,计算出交点与射线起点之间的距离。依照该方式服务器计算出不同高度,不同方向的各个射线起点及其对应交点之间的距离。
之后,服务器根据计算出的各个射线起点与其对应交点之间的距离,以及各个射线对应的起点坐标、射线方向等线数据,生成射线图。射线图作为切面图的补充,更充分表达Agent的远距离障碍物信息。
S105、根据所述深度图、所述切面图和所述射线图进行所述3D虚拟环境建模。
射线图,深度图和切面图分别从不同视角描述了Agent所处的3D虚拟环境的障碍物等空间信息,切面图信息表示Agent近距离的局部信息,射线图和深度图表示Agent远距离更大范围的环境信息。服务器基于深度图、切面图和射线图,将其特征作为网络参数输入深度强化学习神经网络进行模型训练,获得3D虚拟环境的AI模型,预测Agent作出决策,实现模拟真实的3D环境下的智能行为。
上述实施例提供的3D虚拟环境的建模方法,通过获取3D虚拟环境对应的模型数据,基于模型数据以及Agent的空间坐标,获取深度图、切面图(切面图用于表征局部环境的空间信息)、以及射线图(射线图用于表征Agent与至少一个射线方向上的环境对象之间的距离),进而根据深度图、切面图和射线图进行3D虚拟环境建模,预测Agent作出决策,实现模拟真实的3D环境下的智能行为。由于结合了深度图、切面图和射线图,充分地表达3D虚拟环境的空间信息;而且也没有RGB图像那么大的数据量,可以进行大批量快速仿真,因此,实现了充分、高效地进行3D虚拟环境建模。
请参阅图10,图10为本申请实施例提供的一种计算机设备的示意性框图。该计算机设备可以为服务器。
如图10所示,该计算机设备可以包括处理器、存储器和网络接口。处理器、存储器和网络接口通过系统总线连接,该系统总线比如为I2C(Inter-integrated Circuit)总线。
具体地,处理器可以是微控制单元(Micro-controller Unit,MCU)、中央处理单元(Central Processing Unit,CPU)或数字信号处理器 (Digital Signal Processor,DSP)等。
具体地,存储器可以是Flash芯片、只读存储器 (ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器用于运行存储在存储器中的计算机程序,并在执行所述计算机程序时实现如下步骤:
获取3D虚拟环境对应的模型数据;
基于所述模型数据以及与所述3D虚拟环境交互的Agent的空间坐标,进行脱屏渲染获取深度图;
基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent位于的局部环境对应的切面图,所述切面图用于表征所述局部环境的空间信息;
基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent相对于所述3D虚拟环境的射线图,所述射线图用于表征所述Agent与至少一个射线方向上的环境对象之间的距离;
根据所述深度图、所述切面图和所述射线图进行所述3D虚拟环境建模。
在一些实施例中,所述处理器在实现所述获取3D虚拟环境对应的模型数据时,用于实现:
对所述3D虚拟环境对应的obj文件进行解析,获取所述3D虚拟环境对应的所述模型数据,所述模型数据包括点数据和面数据。
在一些实施例中,所述处理器在实现所述基于所述模型数据以及与所述3D虚拟环境交互的Agent的空间坐标,进行脱屏渲染获取深度图时,用于实现:
根据所述模型数据进行模型第一类格子划分,并将每个第一类格子对应的第一类子数据存放于缓存中;
基于所述Agent的所述空间坐标,访问所述缓存中相应的第一类子数据,进行脱屏渲染获取所述深度图。
在一些实施例中,所述处理器在实现所述将每个第一类格子对应的第一类子数据存放于缓存中时,用于实现:
将每个第一类格子对应的第一类子数据以list形式存放于所述缓存中,其中,每个list对应有唯一的标识id。
在一些实施例中,所述处理器在实现所述基于所述Agent的所述空间坐标,访问所述缓存中相应的第一类子数据,进行脱屏渲染获取所述深度图时,用于实现:
基于所述Agent的所述空间坐标,确定所述Agent对应第一类格子的第一list对应的第一标识id;
根据确定的所述第一标识id,访问所述第一标识id对应的第一list缓存的第一类子数据,进行脱屏渲染获取深度图。
在一些实施例中,所述处理器在实现所述基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent位于的局部环境对应的切面图时,用于实现:
根据所述模型数据进行模型第二类格子划分,并将每个第二类格子对应的第二类子数据分别缓存于不同list中,其中,每个list对应有唯一的标识id;
基于所述Agent的所述空间坐标,确定所述Agent对应第二类格子的第二list对应的第二标识id;
根据确定的所述第二标识id,获取与所述Agent对应第二类格子相邻的邻近格子的第三list对应的第三标识id;
访问所述第三标识id对应的第三list中缓存的第二类子数据,并根据所述第二类子数据,获取所述切面图。
在一些实施例中,所述处理器在实现所述根据所述第二类子数据,获取所述切面图时,用于实现:
基于所述Agent各个部位对应的高度,遍历所述第三list中缓存的所述第二类子数据,获取每个高度对应水平面的第一相交线段;
将每个高度对应水平面的所述第一相交线段映射到同一平面上,获取每个高度的切面图。
在一些实施例中,所述处理器在实现所述基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent相对于所述3D虚拟环境的射线图时,用于实现:
基于所述Agent的所述空间坐标,获取不同高度、不同方向的各个射线对应的线数据;
根据所述各个射线对应的线数据以及所述模型数据,确定所述各个射线与所述3D虚拟环境的第二相交线段;
根据所述模型数据中的面数据,将所述第二相交线段映射到二维平面,判断所述第二相交线段与所述面数据对应平面是否有交点;
若所述第二相交线段与所述面数据对应平面有交点,则判断所述交点是否位于所述面数据构成的三角形内部;
若所述交点位于所述三角形内部,则获取所述交点与对应射线的起点之间的距离;
根据所述距离以及对应射线的线数据,生成所述射线图。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的计算机设备的具体工作过程,可以参考前述3D虚拟环境的建模方法实施例中的对应过程,在此不再赘述。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现上述实施例提供的3D虚拟环境的建模方法的步骤。例如,该计算机程序被处理器加载,可以执行如下步骤:
获取3D虚拟环境对应的模型数据;
基于所述模型数据以及与所述3D虚拟环境交互的Agent的空间坐标,进行脱屏渲染获取深度图;
基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent位于的局部环境对应的切面图,所述切面图用于表征所述局部环境的空间信息;
基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent相对于所述3D虚拟环境的射线图,所述射线图用于表征所述Agent与至少一个射线方向上的环境对象之间的距离;
根据所述深度图、所述切面图和所述射线图进行所述3D虚拟环境建模。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,计算机可读存储介质可以是前述实施例的计算机设备的内部存储单元,例如计算机设备的硬盘或内存。计算机可读存储介质也可以是计算机设备的外部存储设备,例如计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种3D虚拟环境的建模方法,因此,可以实现本申请实施例所提供的任一种3D虚拟环境的建模方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅是本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (9)

1.一种3D虚拟环境的建模方法,其特征在于,包括:
获取3D虚拟环境对应的模型数据;
基于所述模型数据以及与所述3D虚拟环境交互的Agent的空间坐标,进行脱屏渲染获取深度图;
基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent位于的局部环境对应的切面图,所述切面图用于表征所述局部环境的空间信息;
基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent相对于所述3D虚拟环境的射线图,所述射线图用于表征所述Agent与至少一个射线方向上的环境对象之间的距离;
根据所述深度图、所述切面图和所述射线图进行所述3D虚拟环境建模;
其中,所述基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent位于的局部环境对应的切面图,包括:
根据所述模型数据进行模型第二类格子划分,并将每个第二类格子对应的第二类子数据分别缓存于不同list中,其中,每个list对应有唯一的标识id;
基于所述Agent的所述空间坐标,确定所述Agent对应第二类格子的第二list对应的第二标识id;
根据确定的所述第二标识id,获取与所述Agent对应第二类格子相邻的邻近格子的第三list对应的第三标识id;
访问所述第三标识id对应的第三list中缓存的第二类子数据,并根据所述第二类子数据,获取所述切面图。
2.根据权利要求1所述的方法,其特征在于,所述获取3D虚拟环境对应的模型数据,包括:
对所述3D虚拟环境对应的obj文件进行解析,获取所述3D虚拟环境对应的所述模型数据,所述模型数据包括点数据和面数据。
3.根据权利要求1所述的方法,其特征在于,所述基于所述模型数据以及与所述3D虚拟环境交互的Agent的空间坐标,进行脱屏渲染获取深度图,包括:
根据所述模型数据进行模型第一类格子划分,并将每个第一类格子对应的第一类子数据存放于缓存中;
基于所述Agent的所述空间坐标,访问所述缓存中相应的第一类子数据,进行脱屏渲染获取所述深度图。
4.根据权利要求3所述的方法,其特征在于,所述将每个第一类格子对应的第一类子数据存放于缓存中,包括:
将每个第一类格子对应的第一类子数据以list形式存放于所述缓存中,其中,每个list对应有唯一的标识id。
5.根据权利要求4所述的方法,其特征在于,所述基于所述Agent的所述空间坐标,访问所述缓存中相应的第一类子数据,进行脱屏渲染获取所述深度图,包括:
基于所述Agent的所述空间坐标,确定所述Agent对应第一类格子的第一list对应的第一标识id;
根据确定的所述第一标识id,访问所述第一标识id对应的第一list缓存的第一类子数据,进行脱屏渲染获取深度图。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第二类子数据,获取所述切面图,包括:
基于所述Agent各个部位对应的高度,遍历所述第三list中缓存的所述第二类子数据,获取每个高度对应水平面的第一相交线段;
将每个高度对应水平面的所述第一相交线段映射到同一平面上,获取每个高度的切面图。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述基于所述模型数据以及所述Agent的所述空间坐标,获取所述Agent相对于所述3D虚拟环境的射线图,包括:
基于所述Agent的所述空间坐标,获取不同高度、不同方向的各个射线对应的线数据;
根据所述各个射线对应的线数据以及所述模型数据,确定所述各个射线与所述3D虚拟环境的第二相交线段;
根据所述模型数据中的面数据,将所述第二相交线段映射到二维平面,判断所述第二相交线段与所述面数据对应平面是否有交点;
若所述第二相交线段与所述面数据对应平面有交点,则判断所述交点是否位于所述面数据构成的三角形内部;
若所述交点位于所述三角形内部,则获取所述交点与对应射线的起点之间的距离;
根据所述距离以及对应射线的线数据,生成所述射线图。
8.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一项所述的3D虚拟环境的建模方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一项所述的3D虚拟环境的建模方法。
CN202010434608.0A 2020-05-21 2020-05-21 3d虚拟环境的建模方法、计算机设备及存储介质 Active CN111340949B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010434608.0A CN111340949B (zh) 2020-05-21 2020-05-21 3d虚拟环境的建模方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010434608.0A CN111340949B (zh) 2020-05-21 2020-05-21 3d虚拟环境的建模方法、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111340949A CN111340949A (zh) 2020-06-26
CN111340949B true CN111340949B (zh) 2020-09-18

Family

ID=71183033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010434608.0A Active CN111340949B (zh) 2020-05-21 2020-05-21 3d虚拟环境的建模方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111340949B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112295232B (zh) * 2020-11-23 2024-01-23 超参数科技(深圳)有限公司 导航决策制定方法、ai模型训练方法、服务器及介质
CN115859411B (zh) * 2022-12-09 2024-07-09 腾讯科技(深圳)有限公司 一种体渲染碰撞检测方法、装置、设备以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542601A (zh) * 2010-12-10 2012-07-04 三星电子株式会社 一种用于3d对象建模的设备和方法
US10592973B1 (en) * 2013-10-25 2020-03-17 Appliance Computing III, Inc. Image-based rendering of real spaces

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2452944B8 (en) * 2007-09-19 2016-09-14 Toshiba Res Europ Ltd An imaging system and method
US8711141B2 (en) * 2011-08-28 2014-04-29 Arcsoft Hangzhou Co., Ltd. 3D image generating method, 3D animation generating method, and both 3D image generating module and 3D animation generating module thereof
US9418475B2 (en) * 2012-04-25 2016-08-16 University Of Southern California 3D body modeling from one or more depth cameras in the presence of articulated motion
DE102013226924B4 (de) * 2013-12-20 2018-08-02 Siemens Healthcare Gmbh Verfahren zum Bestimmen eines patientenindividuellen Injektionsprofils
CN104376590A (zh) * 2014-11-18 2015-02-25 武汉海达数云技术有限公司 海量数据按圈索引空间显示方法
CN106651900B (zh) * 2016-12-27 2019-07-23 中国农业大学 一种基于轮廓分割的高架原位草莓三维建模方法
CN110531846B (zh) * 2018-05-24 2023-05-23 卡兰控股有限公司 在实时3d虚拟世界代表真实世界的范围内的实时3d虚拟对象的双向实时3d交互操作
CN109544677B (zh) * 2018-10-30 2020-12-25 山东大学 基于深度图像关键帧的室内场景主结构重建方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542601A (zh) * 2010-12-10 2012-07-04 三星电子株式会社 一种用于3d对象建模的设备和方法
US10592973B1 (en) * 2013-10-25 2020-03-17 Appliance Computing III, Inc. Image-based rendering of real spaces

Also Published As

Publication number Publication date
CN111340949A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
CN109523621B (zh) 对象的加载方法和装置、存储介质、电子装置
CN111932943B (zh) 动态目标的检测方法、装置、存储介质及路基监测设备
CN111640180B (zh) 一种三维重建方法、装置及终端设备
CN111340949B (zh) 3d虚拟环境的建模方法、计算机设备及存储介质
WO2006122212A2 (en) Statistical rendering acceleration
US11989900B2 (en) Object recognition neural network for amodal center prediction
CN110428504B (zh) 文本图像合成方法、装置、计算机设备和存储介质
CN114202622B (zh) 虚拟建筑生成方法、装置、设备及计算机可读存储介质
CN110917617A (zh) 水波纹图像的生成方法、装置、设备及存储介质
US20220375179A1 (en) Virtual object construction method, apparatus and storage medium
CN114297746A (zh) 建筑信息模型的渲染方法、装置、电子设备和存储介质
US11651533B2 (en) Method and apparatus for generating a floor plan
CN110738719A (zh) 一种基于视距分层优化的Web3D模型渲染方法
CN115859411A (zh) 一种体渲染碰撞检测方法、装置、设备以及存储介质
CN115830202A (zh) 一种三维模型渲染方法和装置
CN115527166A (zh) 图像处理方法、计算机可读存储介质以及电子设备
JP2015022761A (ja) 映像処理装置及び方法
CN115760888A (zh) 图像处理方法、装置、计算机及可读存储介质
CN109597480A (zh) 人机交互方法、装置、电子设备及计算机可读存储介质
US12026835B2 (en) Computer-implemented methods for simulating deformation in real-world scene, electronic devices, and computer-readable storage medium
CN117409144A (zh) 三维实体模型的重建方法、装置、设备、介质和程序产品
CN116824082A (zh) 虚拟地形的绘制方法、装置、设备、存储介质及程序产品
CN116912431A (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
CN117596406A (zh) 利用光流进行帧速率上转换
CN116543461A (zh) 一种动作识别方法、装置、计算机设备及存储介质

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