CN115564930A - 一种虚拟相机碰撞检测方法及装置 - Google Patents
一种虚拟相机碰撞检测方法及装置 Download PDFInfo
- Publication number
- CN115564930A CN115564930A CN202211203098.1A CN202211203098A CN115564930A CN 115564930 A CN115564930 A CN 115564930A CN 202211203098 A CN202211203098 A CN 202211203098A CN 115564930 A CN115564930 A CN 115564930A
- Authority
- CN
- China
- Prior art keywords
- track
- point
- virtual
- segment
- collision
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000004891 communication Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims 1
- 238000013507 mapping Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 3
- 238000009877 rendering Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例提供了一种虚拟相机碰撞检测方法及装置,涉及数据处理技术领域,上述方法包括:基于预设配置信息,在虚拟环境中添加多个轨迹点;基于所述多个轨迹点,绘制虚拟相机运行的虚拟轨迹;基于所述虚拟轨迹中每一虚拟轨迹段,构建与该虚拟轨迹段对应的具有碰撞能力的网格组件;检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。应用本发明实施例能够检虚拟相机是否与物体发生碰撞。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种虚拟相机碰撞检测方法及装置。
背景技术
在进行影视拍摄时,现有技术首先根据某一现实场景,利用渲染引擎构建一个与该现实场景对应的虚拟环境,其中,针对现实场景中存在的每一物体,虚拟环境都会存在表示该物体的虚拟物体,并且该物体在现实场景中的位置与表示该物体的虚拟物体在虚拟环境中的位置相同。然后控制虚拟相机在虚拟环境中进行拍摄,并以动画序列的方式记录虚拟相机拍摄时运行的虚拟轨迹,从而在虚拟场景中预先对拍摄过程进行模拟,然后现实场景中的相机可以参照虚拟场景中虚拟相机的虚拟轨迹在现实场景中进行拍摄。
但是,采用上述方法无法检测虚拟相机在虚拟环境中进行拍摄时,是否与虚拟环境中的其他虚拟物体发生碰撞,如果发生碰撞,现实场景中的相机在参照虚拟相机的虚拟轨迹进行拍摄时,可能会与现实场景中的物体发生碰撞,导致无法正常的完成拍摄。因此,需要一种虚拟相机碰撞检测方法,能够检测虚拟场景中的虚拟相机是否有可能与虚拟物体发生碰撞。
发明内容
本发明实施例的目的在于提供一种虚拟相机碰撞检测方法及装置,以检测虚拟相机是否可能与虚拟物体发生碰撞。具体技术方案如下:
第一方面,本发明实施例提供了一种虚拟相机碰撞检测方法,上述方法包括:
基于预设配置信息,在虚拟环境中添加多个轨迹点,所述预设配置信息中包含:各个轨迹点在虚拟环境中的位置和各个轨迹点的旋转值,针对每一轨迹点,该轨迹点的旋转值表示:当虚拟相机移动到该轨迹点时,所述虚拟相机的拍摄方向;
基于所述多个轨迹点,绘制虚拟相机运行的虚拟轨迹;
针对所述虚拟轨迹中每一虚拟轨迹段,构建与该虚拟轨迹段对应的具有碰撞能力的网格组件,其中,所述虚拟轨迹段指:所述虚拟轨迹中的位置相邻的轨迹点之间的轨迹段,每一虚拟轨迹段全部位于该虚拟轨迹段对应的网格组件中;
检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。
第二方面,本发明实施例提供了一种虚拟相机碰撞检测装置,上述装置包括:
轨迹点添加模块,用于基于预设配置信息,在虚拟环境中添加多个轨迹点,所述预设配置信息中包含:各个轨迹点在虚拟环境中的位置和各个轨迹点的旋转值,针对每一轨迹点,该轨迹点的旋转值表示:当虚拟相机移动到该轨迹点时,所述虚拟相机的拍摄方向;
虚拟轨迹绘制模块,用于基于所述多个轨迹点,绘制虚拟相机运行的虚拟轨迹;
第一构建模块,用于针对所述虚拟轨迹中每一虚拟轨迹段,构建与该虚拟轨迹段对应的具有碰撞能力的网格组件,其中,所述虚拟轨迹段指:所述虚拟轨迹中的位置相邻的轨迹点之间的轨迹段,每一虚拟轨迹段全部位于该虚拟轨迹段对应的网格组件中;
碰撞检测模块,用于检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。
第三方面,一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面的任一方法步骤。
第四方面,一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时,实现上述第一方面的任一方法步骤。
本发明实施例有益效果:
本发明实施例提供了一种虚拟相机碰撞检测方法,基于预设配置信息,在虚拟环境中添加多个轨迹点,上述预设配置信息中包含:各个轨迹点在虚拟环境中的位置和各个轨迹点的旋转值,针对每一轨迹点,该轨迹点的旋转值表示:当虚拟相机移动到该轨迹点时,上述虚拟相机的拍摄方向;基于上述多个轨迹点,绘制虚拟相机运行的虚拟轨迹;针对所述虚拟轨迹中每一虚拟轨迹段,构建与该虚拟轨迹段对应的具有碰撞能力的网格组件,其中,所述虚拟轨迹段指:所述虚拟轨迹中的位置相邻的轨迹点之间的轨迹段,每一虚拟轨迹段全部位于该虚拟轨迹段对应的网格组件中;检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。
由以上可见,针对每一虚拟轨迹段,都可以构建一个与该虚拟轨迹段对应的网格组件,而该虚拟轨迹段位于该虚拟轨迹段对应的网格组件之中,说明可以从上述网格组件中确定该虚拟轨迹段,进而可以说明上述网格组件能够表示虚拟相机在该虚拟轨迹段中运行时的虚拟轨迹,并且,上述网格组件是具有碰撞能力的,因此如果存在网格组件与虚拟物体发生碰撞,说明虚拟相机沿着该网格组件表示的虚拟轨迹进行拍摄时,与虚拟物体发生碰撞。因此本发明实施例能够检测虚拟相机是否有可能与虚拟物体发生碰撞,并且还能够确定虚拟相机与虚拟物体发生碰撞的虚拟轨迹。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的第一种虚拟相机碰撞检测方法的流程示意图;
图2为本发明实施例提供的一种虚拟轨迹绘制方法的流程示意图;
图3为本发明实施例提供的一种网格组件碰撞检测的流程示意图;
图4为本发明实施例提供的第二种虚拟相机碰撞检测方法的流程示意图;
图5为本发明实施例提供的第三种虚拟相机碰撞检测方法的流程示意图;
图6为本发明实施例提供的第四种虚拟相机碰撞检测方法的流程示意图;
图7为本发明实施例提供的第五种虚拟相机碰撞检测方法的流程示意图;
图8为本发明实施例提供的第六种虚拟相机碰撞检测方法的流程示意图;
图9为本发明实施例提供的第七种虚拟相机碰撞检测方法的流程示意图;
图10为本发明实施例提供的一种碰撞轨迹段编辑方法的流程示意图;
图11为本发明实施例提供的第八种虚拟相机碰撞检测方法的流程示意图;
图12为本发明实施例提供的第一种虚拟相机碰撞检测方法的结构示意图;
图13为本发明实施例提供的第二种虚拟相机碰撞检测方法的结构示意图;
图14为本发明实施例提供的第三种虚拟相机碰撞检测方法的结构示意图;
图15为本发明实施例提供的第四种虚拟相机碰撞检测方法的结构示意图;
图16为本发明实施例提供的第五种虚拟相机碰撞检测方法的结构示意图;
图17为本发明实施例提供的第六种虚拟相机碰撞检测方法的结构示意图;
图18为发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
为了能够检测虚拟相机是否与虚拟物体发生碰撞,本发明实施例提供了一种虚拟相机碰撞检测方法及装置。
本发明实施例提供了一种虚拟相机碰撞检测方法,上述方法包括:
基于预设配置信息,在虚拟环境中添加多个轨迹点,上述预设配置信息中包含:各个轨迹点在虚拟环境中的位置和各个轨迹点的旋转值,针对每一轨迹点,该轨迹点的旋转值表示:当虚拟相机移动到该轨迹点时,上述虚拟相机的拍摄方向;
基于上述多个轨迹点,绘制虚拟相机运行的虚拟轨迹;
针对上述虚拟轨迹中每一虚拟轨迹段,构建与该虚拟轨迹段对应的具有碰撞能力的网格组件,其中,上述虚拟轨迹段指:上述虚拟轨迹中的位置相邻的轨迹点之间的轨迹段,每一虚拟轨迹段全部位于该虚拟轨迹段对应的网格组件中;
检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。
由以上可见,针对每一虚拟轨迹段,都可以构建一个与该虚拟轨迹段对应的网格组件,而与该虚拟轨迹段对应的网格组件与该虚拟轨迹段具有重合的边,说明上述网格组件表示的轨迹与该虚拟轨迹段的轨迹是重合的,进而可以说明上述网格组件能够表示虚拟相机在该虚拟轨迹段中运行时的虚拟轨迹,并且,上述网格组件是具有碰撞能力的,因此如果存在网格组件与虚拟物体发生碰撞,说明虚拟相机沿着该网格组件表示的虚拟轨迹进行拍摄时,与虚拟物体发生碰撞。因此本发明实施例能够检测虚拟相机是否有可能与虚拟物体发生碰撞,并且还能够确定虚拟相机与虚拟物体发生碰撞的虚拟轨迹。
为了能够检测虚拟相机是否可能与虚拟物体发生碰撞,首先可以预先在电子设备中配置渲染引擎,常用的渲染引擎有:UnrealEngine(虚幻引擎)、Unity3D(统一3D)等,比如:可以在个人计算机上预先配置一种UnrealEngine渲染引擎,然后就可以利用UnrealEngine渲染引擎构建一个与该现实场景对应的虚拟环境。
本方案的执行主体为配置有渲染引擎的电子设备。另外,还可以利用安装有陀螺仪、虚拟遥感等设备的移动设备与上述电子设备相连,移动设备基于陀螺仪控制电子设备中渲染引擎中的虚拟相机,或者移动设备可以利用虚拟遥感控制电子设备中渲染引擎中的虚拟相机进行移动。因此,在上述电子设备中的渲染引擎绘制虚拟轨迹之后,上述移动设备可以控制虚拟相机沿着虚拟轨迹进行拍摄,或者在上述电子设备中的渲染引擎还未绘制虚拟轨迹情况下,用户可以移动上述移动设备,上述移动设备基于自身移动的轨迹控制虚拟相机移动,并且电子设备可以实时记录上述虚拟相机移动的轨迹。
图1为本发明实施例提供的第一种虚拟相机碰撞检测方法的流程示意图,如图1所示,可以包括以下步骤:S101-S104。
步骤S101:基于预设配置信息,在虚拟环境中添加多个轨迹点。
其中,上述预设配置信息中包含:各个轨迹点在虚拟环境中的位置和各个轨迹点的旋转值,针对每一轨迹点,该轨迹点的旋转值表示:当虚拟相机移动到该轨迹点时,上述虚拟相机的拍摄方向。
具体的,上述各个轨迹点在虚拟环境中的位置可以利用坐标的形式记录在上述预设配置信息中,比如:一般情况下渲染引擎构建的虚拟环境的维度是三维的,所以每一轨迹点在虚拟环境中的位置都可以用坐标(X,Y,Z)表示,其中,X表示:该轨迹点在虚拟环境中三维坐标系中X方向的坐标值;Y表示:该轨迹点在虚拟环境中三维坐标系中Y方向的坐标值;Z表示:该轨迹点在虚拟环境中三维坐标系中Z方向的坐标值。
各个轨迹点的旋转值用于控制虚拟相机的拍摄方向,即当虚拟相机移动到某一轨迹点时,渲染引擎会根据该轨迹点的旋转值,调整虚拟相机的拍摄方向。
本发明的一个实施例中,可以每经过预设添加时长,获取上述预设配置信息中的一个未添加的轨迹点的位置和旋转值,然后根据获取的轨迹点的位置和旋转值,向虚拟环境中添加该轨迹点,其中,上述预设添加时长可以为1s、2s、3s等较短时长。
另外,上述预设配置信息中还可以包含:轨迹点的光圈信息和轨迹点的焦距信息,针对每一轨迹点,该轨迹点的光圈信息表示:当虚拟相机移动到该轨迹点时,上述虚拟相机的拍摄时的光圈,该轨迹点的焦距信息表示:当虚拟相机移动到该轨迹点时,上述虚拟相机的拍摄时的焦距。
步骤S102:基于上述多个轨迹点,绘制虚拟相机运行的虚拟轨迹。
具体的,由于已经在虚拟环境中添加了上述多个轨迹点,因此渲染引擎可以基于上述多个轨迹点,绘制虚拟相机运行的虚拟轨迹。
本发明的一个实施例中,在向虚拟环境中添加多个轨迹点之后,用户可以通过鼠标点击等方式确定上述轨迹点之间的连接顺序,然后渲染引擎按照确定的连接顺序连接上述轨迹点,绘制虚拟相机运行的虚拟轨迹,或者渲染引擎可以将上述多个轨迹点按照添加到虚拟环境中的次序依次相连,绘制虚拟相机运行的虚拟轨迹。
本发明的另一个实施例中,渲染引擎可以基于虚拟环境中各个轨迹点的旋转值,绘制虚拟相机运行的虚拟轨迹。比如:绘制虚拟环境中第三轨迹点和第四轨迹点之间的虚拟轨迹段,可以从第三轨迹点开始绘制虚拟轨迹段,并且上述虚拟轨迹段的初始方向与上述第三轨迹点的旋转值的方向相切,最终将上述虚拟轨迹段绘制到第四轨迹点结束,并且上述虚拟轨迹段结束的方向与上述第四轨迹点的旋转值的方向相切。由此可见,基于虚拟环境中各个轨迹点的旋转值绘制的虚拟轨迹可能是直线,也可能是曲线。
另外,在渲染引擎绘制任意两个轨迹点之间的虚拟轨迹段时,可以利用线性插值法确定预设数量个插值轨迹点的位置和旋转值,然后将上述预设数量个插值轨迹点插入到虚拟环境中,然后将上述插值轨迹点和两个轨迹点依次连接,即可以绘制任意两个轨迹点之间的虚拟轨迹段,其中上述线性插值法为现有技术,这里不再详述。
步骤S103:针对上述虚拟轨迹中每一虚拟轨迹段,构建与该虚拟轨迹段对应的具有碰撞能力的网格组件。
其中,上述虚拟轨迹段指:上述虚拟轨迹中的位置相邻的轨迹点之间的轨迹段。
具体的,上述虚拟轨迹中可以包含多个虚拟轨迹段,每一虚拟轨迹段是上述虚拟轨迹中的位置相邻的两个轨迹点之间的轨迹段,即若上述虚拟轨迹由10个轨迹点绘制,那么上述虚拟轨迹可以包含9个虚拟轨迹段,并且每一虚拟轨迹段中仅包含两个轨迹点。
另外,每一虚拟轨迹段全部位于该虚拟轨迹段对应的网格组件中。
具体的,针对上述虚拟轨迹中每一虚拟轨迹段,在构建与该虚拟轨迹段对应的网格组件之后,每一虚拟轨迹段全部位于该虚拟轨迹段对应的网格组件中,说明可以基于上述网格组件确定该虚拟轨迹段,因此上述网格组件可以表示虚拟相机沿着虚拟轨迹拍摄时的运行轨迹。
另外,可以基于具体碰撞能力的盒子模型、球体模型等模型构建网格组件,通过上述模型构建的网格组件是具有碰撞能力的。
本发明的一个实施例中,可以沿着虚拟轨迹段添加多个具有碰撞能力的模型,其中在添加每一模型时,添加的该模型的某一边与上述虚拟轨迹段重合,直到上述虚拟轨迹段的所有部分均存在与之重合的模型,然后基于添加的多个模型构建与该虚拟轨迹段对应的网格组件。
另外,上述网格组件只是用于检测虚拟相机沿着网格组件对应的虚拟轨迹段拍摄时是否与虚拟物体发生碰撞,而用于构建上述网格组件的模型的形状不重要,因此在构建上述网格组件之后,可以将网格组件的模型设置为不可见。
本发明的一个实施例中,上述步骤S104可以通过下文中的步骤A-步骤B实现,这里暂不详述。
步骤S104:检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。
具体的,由于网格组件具有碰撞能力,因此当网格组件对应的虚拟轨迹段穿过虚拟环境中的某一虚拟物体时,上述网格组件中的具体碰撞能力的模型会与虚拟物体发生碰撞,因此能够检测上述网格组件与虚拟物体发生碰撞。
本发明的一个实施例中,可以依次遍历每一网格组件,检测该网格组件是否与虚拟环境中的某一虚拟物体发生碰撞,若是,可以将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。
另外,为了更加清楚的观察到虚拟环境中的哪些虚拟轨迹段可能导致虚拟相机发生碰撞,在检测到与虚拟物体发生碰撞的网格组件后,渲染引擎可以将该网格组件对应的虚拟轨迹段的颜色渲染成较为醒目的颜色,比如:红色、紫色等,此外,还可以在本发明实施例执行主体的显示器上以文字的形式显示哪些虚拟轨迹段导致虚拟相机发生碰撞,具体的,所显示的文字可以为虚拟轨迹段的编号、位置、标识等。
由以上可见,针对每一虚拟轨迹段,都可以构建一个与该虚拟轨迹段对应的网格组件,而该虚拟轨迹段位于该虚拟轨迹段对应的网格组件之中,说明可以从上述网格组件中确定该虚拟轨迹段,进而可以说明上述网格组件能够表示虚拟相机在该虚拟轨迹段中运行时的虚拟轨迹,并且,上述网格组件是具有碰撞能力的,因此如果存在网格组件与虚拟物体发生碰撞,说明虚拟相机沿着该网格组件表示的虚拟轨迹进行拍摄时,与虚拟物体发生碰撞。因此本发明实施例能够检测虚拟相机是否有可能与虚拟物体发生碰撞,并且还能够确定虚拟相机与虚拟物体发生碰撞的虚拟轨迹。
另外,在本发明实施例中,上述虚拟环境中添加的多个轨迹点不仅包含各个各个轨迹点在虚拟环境中的位置,而且包含各个轨迹点的旋转值,因此,可以基于各个轨迹点的旋转值,绘制虚拟相机运行的虚拟轨迹,因此虚拟相机在沿着虚拟轨迹进行拍摄时,虚拟相机的拍摄方向可以是虚拟相机运行的方向,因此虚拟相机沿着虚拟轨迹段进行拍摄时,更加符合相机拍摄的真实情况。
此外,现有技术是以动画序列的方式记录虚拟相机拍摄时运行的虚拟轨迹,利用动画序列记录虚拟轨迹需要依靠动画序列编辑器,而操作人员使用动画序列编辑器需要付出较高的学习成本,而本发明实施例由于不需要使用动画序列编辑器,所以操作人员不需要为学习使用动画序列编辑器而浪费较多的学习时间。
需要说明的是,本发明实施例中,渲染引擎在绘制虚拟轨迹段时,是基于配置信息,向虚拟环境中添加多个轨迹点,在多个轨迹点全部添加到虚拟环境中后,再开始绘制虚拟轨迹段。除此方法之外,渲染引擎还可以在向虚拟环境中添加轨迹点的同时绘制虚拟轨迹段。
如图2所示,图2为本发明实施例提供的一种虚拟轨迹绘制方法的流程示意图。
步骤S201:移动设备开始控制虚拟相机在虚拟环境中绘制虚拟轨迹。
具体的,在移动设备安装有陀螺仪、虚拟遥感等设备的情况下,用户可以控制移动设备进行移动,然后移动设备可以根据自身在现实环境中移动的轨迹,控制虚拟相机在虚拟环境中移动,使得虚拟相机在虚拟环境中移动的轨迹与移动设备在现实环境中移动的轨迹相同。
步骤S202:每经过预设添加时长,在虚拟相机位于的位置添加轨迹点。
具体的,可以在虚拟相机移动的过程中,添加轨迹点,比如:在虚拟相机移动的过程中,每经过1s,在上述虚拟相机所在的位置添加轨迹点。
步骤S203:绘制最近添加的两个轨迹点之间的虚拟轨迹段。
具体的,比如,在步骤S202中向虚拟环境中添加第一个轨迹点后,经过预设添加时长后,向虚拟环境中添加第二个轨迹点,同时渲染引擎绘制第一个轨迹点与第二个轨迹点之间的虚拟轨迹段,再经过预设添加时长后,向虚拟环境中添加第三个轨迹点,同时渲染引擎绘制第二个轨迹点与第三个轨迹点之间的虚拟轨迹段,以此类推,直到绘制完所有的虚拟轨迹段,上述各个虚拟轨迹段就是虚拟相机运行的虚拟轨迹。
本发明的一个实施例中,上述步骤S103还可以通过以下步骤A-步骤B实现。
步骤A:确定该虚拟轨迹段中的起点轨迹点和终点轨迹点的位置和旋转值。
其中,上述虚拟轨迹段中两个轨迹点一个为起点轨迹点,另一个为终点轨迹点,上述起点轨迹点为:根据虚拟相机沿着该虚拟轨迹段拍摄时运行的方向,上述虚拟相机首先经过的轨迹点;上述终点轨迹点为:根据虚拟相机沿着该虚拟轨迹段拍摄时运行的方向,上述虚拟相机最后经过的轨迹点。
具体的,每一虚拟轨迹段都是基于虚拟轨迹段中的起点轨迹点和终点轨迹点的位置和旋转值绘制的,因此为了能够获取的网格组件存在与该网格组件对应的虚拟轨迹段重合的边,需要确定该该虚拟轨迹段中的起点轨迹点和终点轨迹点的位置和旋转值。
步骤B:基于上述起点轨迹点和终点轨迹点的位置和旋转值,基于具备碰撞能力的网格体模型构建与该虚拟轨迹段对应的网格组件。
具体的,上述网格组件是基于具有碰撞能力的网格体模型构建的,上述网格体模型可以为圆柱体,立方体等,由于网格体模型具有碰撞能力,因此由网格模型构建的网格组件也具有碰撞能力。
本发明的一个实施例中,首先可以基于该虚拟轨迹段中的起点轨迹点和终点轨迹点,确定该虚拟轨迹段的形状,比如:该虚拟轨迹段是直线或曲线等,然后可以基于该虚拟轨迹段的形状,添加多个圆柱体的网格体模型,使得该虚拟轨迹段位于每一圆柱体的网格体模型的中心,然后将上述多个圆柱体的网格体模型构建为网格组件,因为该虚拟轨迹段位于每一圆柱体的网格体模型的中心,所以由各个圆柱体的网格体模型的中心绘制的轨迹会与该虚拟轨迹段重合,因此上述网格组件可以表示虚拟相机沿着虚拟轨迹拍摄时的运行轨迹。
由以上可见,首先获取该虚拟轨迹段中的起点轨迹点和终点轨迹点,因为该虚拟轨迹段是基于该虚拟轨迹段的起点轨迹点和终点轨迹点绘制的,所以获取该虚拟轨迹段中的起点轨迹点和终点轨迹点后,也就获取的该虚拟轨迹段的形状,然后基于该虚拟轨迹段的形状,能够获取与该虚拟轨迹段对应的网格组件,另外网格组件是基于具有碰撞能力的网格体模型构建的,所以上述网格组件也具有碰撞能力。因此本发明实施例能够构建与虚拟轨迹段对应的具有碰撞能力的网格组件。
参见图3,图3为本发明实施例提供的一种网格组件碰撞检测的流程示意图,图3所示的实施例是基于网格体模型构建网格组件的碰撞检测方法,可以包括以下步骤:S301-S304。
步骤S301:绘制虚拟相机运行的虚拟轨迹。
步骤S302:遍历上述虚拟轨迹中的每一轨迹点,基于该轨迹点的位置和旋转值,创建由网格体模型构建的网格组件。
步骤S303:检测与虚拟物体发生碰撞的网格组件,将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。
步骤S304:将上述碰撞轨迹段的颜色渲染成红色,并用文字信息提示导致虚拟相机发生碰撞的虚拟轨迹段。
具体的,上述步骤S301-步骤S304中的具体实现方式已经在上文中的步骤S101-步骤S104和步骤A-步骤B中已经详细说明,这里不再赘述。
图4为本发明实施例提供的第二种虚拟相机碰撞检测方法的流程示意图,与图1所示的实施例相比,上述步骤S104之后,还包括步骤:S105-S106。
步骤S105:针对检测到的每一碰撞轨迹段,编辑该碰撞轨迹段。
具体的,针对检测到的每一碰撞轨迹段,虚拟相机沿着该碰撞轨迹段进行拍摄时会与虚拟环境中的物体发生碰撞,进而现实场景中的相机不能正常的完成拍摄,因此需要编辑该碰撞轨迹段,使得该碰撞轨迹段的轨迹发生变化,虚拟相机沿着编辑后的碰撞轨迹段进行拍摄时可能不会与虚拟环境中的物体发生碰撞。
本发明的一个实施例中,针对检测到的每一碰撞轨迹段,可以更改该碰撞轨迹段中的轨迹点的旋转值、或者还可以同时更改该碰撞轨迹段中的轨迹点的位置和旋转值,然后根据更改旋转值后的轨迹点或者根据更改位置和旋转值后的轨迹点重新绘制该碰撞轨迹段,使得重新绘制后的碰撞轨迹段的轨迹与重新绘制前的碰撞轨迹段的轨迹不同。
本发明的另一个实施例中,上述步骤S105可以通过下文图5中的步骤S105A-步骤S105B实现,或者可以通过下文图6中的步骤S105C-步骤S105E实现,或者可以通过下文图8中的步骤S105F-步骤S105I实现,这里暂不详述。
步骤S106:基于编辑后的碰撞轨迹段,构建与上述编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件。
具体的,编辑后的碰撞轨迹段虽然与碰撞前的碰撞轨迹段不同,但是编辑后的碰撞轨迹段的不具备碰撞能力,因此需要构建与上述编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件,构建与上述编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件的具体实现方式与上文中步骤S103中所述的实现方式相似。这里不再赘述。
另外,编辑后的碰撞轨迹段只是与碰撞前的碰撞轨迹段不同,无法确定虚拟相机沿着编辑后的碰撞轨迹段拍摄时,是否会与虚拟环境中的虚拟物体发生碰撞,因此在构建与上述编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件之后,需要重新执行上述步骤S104,检测与上述编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件是否与具有碰撞能力的虚拟物体发生碰撞。
由以上可见,本发明实施例在确定碰撞轨迹段之后,为了使虚拟相机沿着上述碰撞轨迹段拍摄时,不会与虚拟物体发生碰撞,可以编辑上述碰撞轨迹段,使得编辑后的碰撞轨迹段与编辑前的碰撞轨迹段不同,然后构建与上述编辑后的碰撞轨迹段对应的网格组件,重新检测与上述编辑后的碰撞轨迹段对应的网格组件是否与虚拟物体发生碰撞。
此外,本发明实施例不仅可以编辑碰撞轨迹段,还可以编辑上述虚拟轨迹中其他未发生碰撞的轨迹段,比如:在绘制上述虚拟轨迹之后,虚拟相机沿着上述虚拟轨迹中的各个轨迹段的轨迹进行拍摄时,可能发现虚拟相机在某些轨迹段中的拍摄效果不好,因此可以编辑上述轨迹段中的轨迹点,包括:该轨迹点的位置、旋转值、光圈信息、焦距信息等信息,然后构建与上述编辑后的轨迹段对应的网格组件,进而能够提高虚拟相机在上述轨迹段中的拍摄效果。
图5为本发明实施例提供的第三种虚拟相机碰撞检测方法的流程示意图,与图3所示的实施例相比,上述步骤S105可以包括以下步骤:S105A-S105B。
步骤S105A:更改该碰撞轨迹段中的起点轨迹点和/或终点轨迹点在上述虚拟环境中的位置。
其中,上述碰撞轨迹段中两个轨迹点一个为起点轨迹点,另一个为终点轨迹点,上述起点轨迹点为:根据虚拟相机沿着该碰撞轨迹段拍摄时运行的方向,上述虚拟相机首先经过的轨迹点;上述终点轨迹点为:根据虚拟相机沿着该碰撞轨迹段拍摄时运行的方向,上述虚拟相机最后经过的轨迹点。
具体的,若该碰撞轨迹段中的起点轨迹点的位置发生变化,则发生变化后的起点轨迹点和终点轨迹点之间的轨迹段可能与该碰撞轨迹段不同,或者若该碰撞轨迹段中的终点轨迹点的位置发生变化,则起点轨迹点和发生变化后的终点轨迹点之间的轨迹段可能与该碰撞轨迹段不同。因此可以通过改变该碰撞轨迹段中的起点轨迹点、改变该碰撞轨迹段中的终点轨迹点或者同时改变该碰撞轨迹段中的终点轨迹点的方式,使该碰撞轨迹段发生变化。
本发明的一个实施例中,若更改该碰撞轨迹段中的起点轨迹点的位置,首先可以确定上述起点轨迹点更改后的待移动位置,然后将上述起点轨迹点移动到上述待移动位置。同理,若更改该碰撞轨迹段中的终点轨迹点的位置,首先可以确定上述终点轨迹点更改后的待移动位置,然后将上述终点轨迹点移动到上述待移动位置。
本发明的另一个实施例中,若更改该碰撞轨迹段中的起点轨迹点的位置,首先确定更改位置后的起点轨迹点的配置信息,上述更改位置后的起点轨迹点的配置信息中包含:更改位置后的起点轨迹点的位置旋转值,然后删除该碰撞轨迹段中的起点轨迹点,向上述虚拟环境中基于上述更改位置后的轨迹点的配置信息添加上述更改位置后的起点轨迹点,将上述更改位置后的轨迹点作为该碰撞轨迹段中的起点轨迹点。更改该碰撞轨迹段中的终点轨迹点的位置的方式与更改该碰撞轨迹段中的起点轨迹点的位置的方式相似,这里不再赘述。
步骤S105B:在更改轨迹点的位置之后,重新绘制起点轨迹点和终点轨迹点之间的虚拟轨迹段。
具体的,若上述步骤S105A中更改的是该碰撞轨迹段中的起点轨迹点的位置,则该碰撞轨迹段中更改的轨迹点为上述起点轨迹点,则该碰撞轨迹段中未更改的轨迹点为该碰撞轨迹段中的终点轨迹点;若上述步骤S105A中更改的是该碰撞轨迹段中的终点轨迹点位置,则该碰撞轨迹段中更改的轨迹点为上述终点轨迹点,则该碰撞轨迹段中未更改的轨迹点为上述起点轨迹点;若上述步骤S105A中更改的是该碰撞轨迹段中的起点轨迹点的位置和终点轨迹点的位置,则该碰撞轨迹段中更改的轨迹点为上述起点轨迹点和上述终点轨迹点,该碰撞轨迹段中不存在未更改的轨迹点。
本发明的一个实施例中,若更改的是该碰撞轨迹段中的起点轨迹点的位置,则首先可以确定更改位置后的起点轨迹点的位置和上述终点轨迹点的位置,然后基于更改位置后的起点轨迹点的旋转值和上述终点轨迹点的旋转值,重新绘制更改后的起点轨迹点和上述终点轨迹点之间的虚拟轨迹段;若更改的是该碰撞轨迹段中的终点轨迹点的位置,则首先可以确定更改位置后的终点轨迹点的位置和上述起点轨迹点的位置,然后基于更改位置后的终点轨迹点的旋转值和上述起点轨迹点的旋转值,重新绘制更改位置后的终点轨迹点和上述起点轨迹点之间的虚拟轨迹段;若更改的是该碰撞轨迹段中的起点轨迹点的位置和该碰撞轨迹段中的终点轨迹点的位置,则首先可以确定更改位置后的起点轨迹点的位置和更改位置后的终点轨迹点的位置,然后基于更改位置后的起点轨迹点的旋转值和更改位置后的终点轨迹点的旋转值,重新绘制更改位置后的起点轨迹点和更改位置后的终点轨迹点之间的虚拟轨迹段。
由以上可见,若该碰撞轨迹段中的起点轨迹点的位置发生变化,则基于位置发生变化的起点轨迹点和位置未发生变化的终点轨迹点重新绘制的虚拟轨迹段与该碰撞轨迹段的形状不同,或者若该碰撞轨迹段中的终点轨迹点的位置发生变化,则基于位置未发生变化的起点轨迹点和位置发生变化的终点轨迹点重新绘制的虚拟轨迹段与该碰撞轨迹段的形状不同,或者若该碰撞轨迹段中的起点轨迹点和终点轨迹点的位置都发生变化,则基于位置发生变化的起点轨迹点和位置发生变化的终点轨迹点重新绘制的虚拟轨迹段与该碰撞轨迹段的形状不同。因此本发明实施例可以通过更改该碰撞轨迹段中的起点轨迹点和/或终点轨迹点的位置,重新绘制虚拟轨迹段,使得该碰撞轨迹段发生变化。
图6为本发明实施例提供的第四种虚拟相机碰撞检测方法的流程示意图,与图3所示的实施例相比,上述步骤S105可以包括以下步骤:S105C-S105E。
步骤S105C:基于该碰撞轨迹段中的起点轨迹点和终点轨迹点之间的位置关系和旋转值关系,确定待添加的新增轨迹点的配置信息。
其中,上述新增轨迹点的配置信息中包含:上述新增轨迹点在上述虚拟环境中的位置和上述新增轨迹点的旋转值。
具体的,上述配置信息中新增轨迹点在上述虚拟环境中的位置可以通过该碰撞轨迹段中的起点轨迹点和终点轨迹点之间的位置关系确定。
本发明的一个实施例中,可以设置第一位置预设比例和第二位置预设比例,上述第一位置预设比例和上述第二位置预设比例的取值可以为0到1之前,但不包括0和1,并且上述第一位置预设比例和上述第二位置预设比例的取值之和等于1。上述第一位置预设比例表示新增轨迹点和上述起点轨迹点之间的距离与该碰撞轨迹段的轨迹长度之比,上述第一位置预设比例的取值越大,说明新增轨迹点与上述起点轨迹点之间的距离越远,上述第二位置预设比例表示新增轨迹点和上述终点轨迹点之间的距离与该碰撞轨迹段的轨迹长度之比,上述第二位置预设比例的取值越大,说明新增轨迹点与上述终点轨迹点之间的距离越远。
比如:上述第一位置预设比例为0.7,上述第二位置预设比例为0.3,说明新增轨迹点与上述起点轨迹点之间的距离占该碰撞轨迹段的轨迹长度的十分之七,新增轨迹点与上述终点轨迹点之间的距离占该碰撞轨迹段的轨迹长度的十分之三。
同理,上述配置信息中新增轨迹点在上述虚拟环境中的旋转值可以通过该碰撞轨迹段中的起点轨迹点和终点轨迹点之间的旋转值关系确定。具体的,可以设置第一旋转值预设比例和第二旋转值预设比例,上述第一旋转值预设比例和上述第二旋转值预设比例的取值可以为0到1之前,但不包括0和1,并且上述第一旋转值预设比例和上述第二旋转值预设比例的取值之和等于1。上述第一位旋转值预设比例表示新增轨迹点和上述起点轨迹点之间的旋转值之差与上述起点轨迹点和终点轨迹点之间的旋转值之差的比值,上述第二旋转值预设比例表示新增轨迹点与上述终点轨迹点之间的旋转值之差与上述起点轨迹点和终点轨迹点之间的旋转值之差的比值。
比如:上述第一旋转值预设比例为0.5,上述第二旋转值预设比例为0.5,说明新增轨迹点与上述起点轨迹点之间的旋转值之差占上述起点轨迹点和终点轨迹点之间的旋转值之差一半,新增轨迹点与上述终点轨迹点之间的旋转值之差占上述起点轨迹点和终点轨迹点之间的旋转值之差一半。
另外,在上述预设配置信息中还包含轨迹点的光圈信息和焦距信息的情况下,还可以为上述新增轨迹点确定光圈信息和焦距信息,具体的实现方式与确定上述新增轨迹点的位置和旋转值的方法相似,这里不再赘述。
步骤S105D:基于上述新增轨迹点的配置信息,在上述虚拟环境中增加新增轨迹点。
具体的,由于上述配置信息中包含上述新增轨迹点在上述虚拟环境中的位置和上述新增轨迹点的旋转值,因此可以向上述虚拟环境中增加新增轨迹点。
步骤S105E:基于上述新增轨迹点、该碰撞轨迹段中的起点轨迹点和终点轨迹点,绘制该碰撞轨迹段中的起点轨迹点和上述新增轨迹点之间的第一轨迹段和上述新增轨迹点和该碰撞轨迹段中的终点轨迹点和之间的第二轨迹段。
具体的,基于上述新增轨迹点、该碰撞轨迹段中的起点轨迹点和终点轨迹点,可以将该碰撞轨迹段重新绘制成第一轨迹段和第二轨迹段,由于上述新增轨迹点的位置可能不位于该碰撞轨迹段中,所以上述第一轨迹段与上述第二轨迹段的形状与该碰撞轨迹段可能不同,因此,可以基于新增轨迹点的方式,能够使该碰撞轨迹段发生变化。
本发明的一个实施例中,首先确定新增轨迹点的位置和该碰撞轨迹段中的起点轨迹点的位置,然后基于上述新增轨迹点和起点轨迹点的旋转值绘制第一轨迹段,然后确定该碰撞轨迹段中的终点轨迹点的位置,然后基于上述新增轨迹点和终点轨迹点的旋转值绘制第二轨迹段,其中,基于上述新增轨迹点和起点轨迹点的旋转值绘制第一轨迹段和基于上述新增轨迹点和终点轨迹点的旋转值绘制第二轨迹段的方式与上述步骤S102中的实施例相似,这里不再赘述。
由以上可见,本发明实施例可以向虚拟环境中添加新增轨迹点,由于新增轨迹点的位置可能不位于该碰撞轨迹段中,因此,基于该碰撞轨迹段中的起点轨迹点和上述新增轨迹绘制的第一轨迹段可能与该碰撞轨迹段不同,基于上述新增轨迹点和该碰撞轨迹段中的终点轨迹点绘制的第二轨迹段也可能与该碰撞轨迹段不同。因此,本发明实施例可以通过向虚拟环境中添加新增轨迹点,使得该碰撞轨迹段发生变化。
图7为本发明实施例提供的第五种虚拟相机碰撞检测方法的流程示意图,与图6所示的实施例相比,上述步骤S105E之后还包括以下步骤:S107。
步骤S107:基于上述第一轨迹段的长度和第二轨迹段的长度之间的关系,分配上述碰撞轨迹段的运行时长,得到第一轨迹段的运行时长和第二轨迹段的运行时长。
其中,每一虚拟轨迹段的运行时长是:虚拟相机在该虚拟轨迹段中运行所需的预设时长。
具体的,若希望虚拟相机在沿着上述较长的虚拟轨迹段拍摄时的运行速度较快,沿着上述较短的虚拟轨迹段拍摄时的运行速度较慢。因此,若上述第一轨迹段的长度大于上述第二轨迹段的长度,则可以将第一轨迹段的运行时长分配的较短一些,将第二轨迹段的运行时长分配的较长一些,若上述第一轨迹段的长度小于上述第二轨迹段的长度,则可以将第二轨迹段的运行时长分配的较短一些,将第二轨迹段的运行时长分配的较长一些。
本发明的一个实施例中,若希望虚拟相机在沿着上述较长的虚拟轨迹段拍摄时的运行速度较快,沿着上述较短的虚拟轨迹段拍摄时的运行速度较慢,可以基于上述第一轨迹段的长度和第二轨迹段的长度之比,分配上述碰撞轨迹段的运行时长。比如:若上述碰撞轨迹段的运行时长为6s,若上述第一轨迹段的长度和第二轨迹段的长度之比为1:1,说明上述第一轨迹段的长度和第二轨迹段的长度相同,则可以为上述第一轨迹段和第二轨迹段分配相同的运行时长,即将上述第一轨迹段的运行时长分配为3s,将上述第二轨迹段的运行时长分配为3s,再比如若上述第一轨迹段的长度和第二轨迹段的长度之比为1:2,则为上述第一轨迹段分配的运行时长是为上述第二轨迹段分配相同的运行时长的2倍,即将上述第一轨迹段的运行时长分配为4s,将上述第二轨迹段的运行时长分配为2s。
或者,若希望虚拟相机在沿着上述较长的虚拟轨迹段拍摄时的运行速度较慢,沿着上述较短的虚拟轨迹段拍摄时的运行速度较快。因此,若上述第一轨迹段的长度大于上述第二轨迹段的长度,则可以将第一轨迹段的运行时长分配的较长一些,将第二轨迹段的运行时长分配的较短一些,若上述第一轨迹段的长度小于上述第二轨迹段的长度,则可以将第二轨迹段的运行时长分配的较长一些,将第二轨迹段的运行时长分配的较短一些。
本发明的一个实施例中,若希望虚拟相机在沿着上述较长的虚拟轨迹段拍摄时的运行速度较慢,沿着上述较短的虚拟轨迹段拍摄时的运行速度较快,可以基于上述第一轨迹段的长度和第二轨迹段的长度之比,分配上述碰撞轨迹段的运行时长。比如:若上述碰撞轨迹段的运行时长为6s,若上述第一轨迹段的长度和第二轨迹段的长度之比为1:1,说明上述第一轨迹段的长度和第二轨迹段的长度相同,则可以为上述第一轨迹段和第二轨迹段分配相同的运行时长,即将上述第一轨迹段的运行时长分配为3s,将上述第二轨迹段的运行时长分配为3s,再比如若上述第一轨迹段的长度和第二轨迹段的长度之比为2:1,则为上述第一轨迹段分配的运行时长是为上述第二轨迹段分配相同的运行时长的2倍,即将上述第一轨迹段的运行时长分配为4s,将上述第二轨迹段的运行时长分配为2s。
另外,在将上述碰撞轨迹段的运行时长分配到第一轨迹段的运行时长和第二轨迹段的运行时长之后,上述第一轨迹段的运行时长和第二轨迹段的运行时长之和应该等于碰撞轨迹段的运行时长。
由以上可见,在对碰撞轨迹段重新绘制为第一轨迹段和第二轨迹段之后,碰撞轨迹段的长度、形状会发生变化,若虚拟相机还按照重新绘制上述碰撞轨迹段之前的运行速度进行拍摄,效果可能不会很好,而本发明实施例在碰撞轨迹段重新绘制为第一轨迹段和第二轨迹段之后,可以重新分配碰撞轨迹段的运行时长,重新配置运行时长之后,相当于分别为第一轨迹段和第二轨迹段重新配置了相匹配的运行速度。
另外,本发明实施例是基于第一轨迹段的长度和第二轨迹段的长度之间的关系,重新分配碰撞轨迹段的运行时长,得到第一轨迹段的运行时长和第二轨迹段的运行时长,因此本发明实施例可以灵活的得到第一轨迹段的运行时长和第二轨迹段的运行时长。
图8为本发明实施例提供的第六种虚拟相机碰撞检测方法的流程示意图,与图4所示的实施例相比,上述步骤S105可以包括以下步骤:S105F-S105I。
步骤S105F:删除该碰撞轨迹段中的起点轨迹点或终点轨迹点。
具体的,可以删除该碰撞轨迹段中两个轨迹点中的一个,即或者删除该碰撞轨迹段中的起点轨迹点,或者删除该碰撞轨迹段中的终点轨迹点。
步骤S105G:判断所删除的轨迹点是否为上述虚拟轨迹的起点或上述虚拟轨迹的终点。
具体的,若所删除的轨迹轨迹点是上述虚拟轨迹的起点轨迹点或上述虚拟轨迹的终点轨迹点,则执行步骤S105H,否则执行步骤S105I。
步骤S105H:删除该碰撞轨迹段,将该碰撞轨迹段的终点轨迹点作为上述虚拟轨迹的起点或将该碰撞轨迹段的起点轨迹点作为上述虚拟轨迹的终点。
具体的,若所删除的轨迹点是上述虚拟轨迹的起点轨迹点,说明在上述虚拟轨迹中不存在与所删除的轨迹点前序相邻的轨迹点,也就无法根据与所删除的轨迹点前序相邻的轨迹点和该碰撞轨迹段的终点轨迹点绘制新的轨迹段。所以可以删除该碰撞轨迹段,并将该碰撞轨迹段的终点轨迹点作为上述虚拟轨迹的起点轨迹点。
同样的,若所删除的轨迹点是上述虚拟轨迹的终点轨迹点,说明在上述虚拟轨迹中不存在与所删除的轨迹点后序相邻的轨迹点,也就无法根据该碰撞轨迹段的起点轨迹点和与所删除的轨迹点后序相邻的轨迹点绘制新的轨迹段。所以可以删除该碰撞轨迹段,并将该碰撞轨迹段的起点轨迹点作为上述虚拟轨迹的终点轨迹点。
步骤S105I:绘制上述第一轨迹点与上述第二轨迹点之间的第三轨迹段。
其中,上述第一轨迹点是虚拟轨迹中与所删除的轨迹点前序相邻的轨迹点,上述第二轨迹点是虚拟轨迹中与所删除的轨迹点后序相邻的轨迹点。
具体的,若上述步骤S105F中删除的是起点轨迹点,则上述第一轨迹点是虚拟轨迹中与上述起点轨迹点前序相邻的轨迹点,上述第二轨迹点是虚拟轨迹中与上述起点轨迹点后序相邻的轨迹点;若上述步骤S105F中删除的是终点轨迹点,则上述第一轨迹点是虚拟轨迹中与上述终点轨迹点前序相邻的轨迹点,上述第二轨迹点是虚拟轨迹中与上述终点轨迹点后序相邻的轨迹点。
具体的,若删除该碰撞轨迹段中的起点轨迹点,则只能根据虚拟环境中的其他轨迹点和碰撞轨迹段中的终点轨迹点绘制第三轨迹段,而虚拟环境中的其他轨迹点与删除的起点轨迹点的位置和旋转值可能不同,因此绘制的第三轨迹段与上述碰撞轨迹段不同;若删除该碰撞轨迹段中的终点轨迹点,则可以根据碰撞轨迹段中的起点轨迹点和虚拟环境中的其他轨迹点绘制第三轨迹段,而虚拟环境中的其他轨迹点与删除的终点轨迹点的位置和旋转值可能不同,因此绘制的第三轨迹段与上述碰撞轨迹段可能不同。
本发明的一个实施例中,若删除该碰撞轨迹段中的起点轨迹点,则在删除上述起点轨迹点之后,查找除该碰撞轨迹段中的终点轨迹点之外,沿着虚拟轨迹与删除的起点轨迹点距离最近的轨迹点,将该轨迹点作为第一轨迹点,将该碰撞轨迹段中的终点轨迹点作为第二轨迹点,然后基于上述第一轨迹点和上述第二轨迹点绘制第三轨迹段。
同理,若删除该碰撞轨迹段中的终点轨迹点,则在删除上述终点轨迹点之后,查找除该碰撞轨迹段中的起点轨迹点之外,与在虚拟轨迹中距离删除的终点轨迹点最近的轨迹点,将该轨迹轨迹点作为作为第一轨迹点,将该碰撞轨迹段中的起点轨迹点作为第二轨迹点,然后基于上述第一轨迹点和上述第二轨迹点绘制第三轨迹段
由以上可见,本发明实施例可以删除该碰撞轨迹段中的起点轨迹点或终点轨迹点,在删除上述碰撞轨迹段中的任一轨迹点后,则可以根据虚拟环境中的其他轨迹点和碰撞轨迹段中的未删除的轨迹点重新绘制虚拟轨迹段或者直接删除该碰撞轨迹段,而虚拟环境中的其他轨迹点的位置和旋转度可能与删除的轨迹点的位置和旋转度不同,因此重新绘制的虚拟轨迹段与上述碰撞轨迹段也可能不同。因此,发明实施例可以通过删除该碰撞轨迹段中的起点轨迹点或终点轨迹点的方式,使该碰撞轨迹段发生变化。
图9为本发明实施例提供的第七种虚拟相机碰撞检测方法的流程示意图,与图8所示的实施例相比,上述步骤S105I之后还包括以下步骤:S108。
步骤S108:将上述第三轨迹段的运行时长设置为第一时长与第二时长之和。
其中,上述第一时长为:在绘制上述第三轨迹段之前,上述第一轨迹点与所删除的轨迹点之间的虚拟轨迹段的运行时长,上述第二时长为:在绘制上述第三轨迹段之前,所删除的轨迹点之间与上述第二轨迹点之间的虚拟轨迹段的运行时长,每一虚拟轨迹段的运行时长是:虚拟相机在该虚拟轨迹段中运行所需的预设时长。
具体的,为了希望在绘制上述第三轨迹段之后,上述第三轨迹段的运行时长等于在绘制上述第三轨迹段之前,虚拟相机在上述第一轨迹点和上述第二轨迹点之间的虚拟轨迹段之间的预设时长,而上述第一时长与上述第二时长之和等于在绘制上述第三轨迹段之前,虚拟相机在上述第一轨迹点和上述第二轨迹点之间的虚拟轨迹段之间的预设时长,因此可以上述第三轨迹段的运行时长设置为第一时长与第二时长之和
另外,在所删除的轨迹点为上述虚拟轨迹的起点轨迹点或上述虚拟轨迹的终点轨迹点,可以直接删除该碰撞轨迹段。在删除该碰撞轨迹的情况下,可以直接删除该碰撞轨迹的运行时长。
由以上可见,第一轨迹点与所删除的轨迹点之间的虚拟轨迹段的运行时长时第一时长,所删除的轨迹点之间与上述第二轨迹点之间的虚拟轨迹段的运行时长时第二时长,因为上述第一时长与上述第二时长之和等于在绘制上述第三轨迹段之前,虚拟相机在上述第一轨迹点和上述第二轨迹点之间的虚拟轨迹段之间的预设时长,所以在绘制第三轨迹段之后,为了使上述第三轨迹段的运行时长等于在绘制上述第三轨迹段之前,虚拟相机在上述第一轨迹点和上述第二轨迹点之间的虚拟轨迹段之间的预设时长,可以将上述第三轨迹段的运行时长设置为第一时长与第二时长之和。
参见图10,图10为本发明实施例提供的一种碰撞轨迹段编辑方法的流程示意图,如图10所示,可以包括以下步骤:S1001-S1010。
步骤S1001:确定碰撞轨迹点。
步骤S1002:更改该碰撞轨迹段中的起点轨迹点和/或终点轨迹点在所述虚拟环境中的位置。
步骤S1003:重新绘制该碰撞轨迹段中更改的轨迹点和该碰撞轨迹段中未更改的轨迹点之间的虚拟轨迹段。
步骤S1004:基于该碰撞轨迹段中的起点轨迹点和终点轨迹点之间的位置关系、旋转值关系、光圈关系和焦距关系,确定待添加的新增轨迹点的配置信息。
步骤S1005:基于上述新增轨迹点的配置信息,在上述虚拟环境碰撞轨迹段中增加碰撞轨迹点。
其中,上述配置信息中可以包括:新增轨迹点的位置、旋转值、光圈信息、焦距信息。
步骤S1006:基于上述新增轨迹点,该碰撞轨迹段中的起点轨迹点和终点轨迹点,绘制第一轨迹段和第二轨迹段。
步骤S1007:删除该碰撞轨迹段中的起点轨迹点或终点轨迹点。
步骤S1008:基于第一轨迹点和第二轨迹点,绘制第三轨迹段。
步骤S1009:基于编辑后的碰撞轨迹段,构建与编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件。
步骤S1010:检测与编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件是否与虚拟物体发生碰撞。
具体的,上述步骤S1001-步骤S1010在上述中已经详细说明,这里不再赘述。
另外,在图10中,有三种对碰撞轨迹点进行编辑的方式,包括:步骤S1002-步骤S1003是更改碰撞轨迹点中的起点轨迹点和/或终点轨迹点的位置、步骤S1004-步骤S1006是向虚拟环境中添加新增轨迹点、步骤S1007-步骤S1008是删除碰撞轨迹点中的起点轨迹点或终点轨迹点,而每次可以基于上述三种方式中的一种方式对碰撞轨迹点进行编辑准备编辑碰撞轨迹点,在对碰撞轨迹段完成编辑后,可以构建与完成编辑后的碰撞轨迹段对应的网格组件,并检测该组件是否与虚拟物体发生碰撞。
参见图11,图11为本发明实施例提供的第九种虚拟相机碰撞检测方法的流程示意图,可以包括以下步骤:S1101-S1106。
步骤S1101:将用于控制虚拟相机移动的移动设备与电子设备相互连接。
步骤S1102:渲染引擎绘制虚拟相机拍摄时的虚拟轨迹。
步骤S1103:针对上述虚拟轨迹中的每一虚拟轨迹段,获取由具备碰撞能力的网格体模型构建的与该虚拟轨迹段对应的网格组件。
步骤S1104:针对上述每一网格组件,判断该网格组件是否与虚拟物体发生碰撞。
若该网格组件与虚拟物体发生碰撞执行步骤S1105,否则执行步骤S1106。
步骤S1105:编辑该网格组件对应的虚拟轨迹段,并构建与编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件,然后执行上述步骤S1104。
步骤S1106:记录上述虚拟轨迹,现实场景中的相机可以根据上述虚拟轨迹在现实场景中拍摄。
具体的,步骤S1101-步骤S1106中的具体实现方式在上文中已经详细说明,这里不再赘述。
图12为本发明实施例提供的第一种虚拟相机碰撞检测方法的结构示意图,上述装置可以包括以下模块:1201-1204。
轨迹点添加模块1201:用于基于预设配置信息,在虚拟环境中添加多个轨迹点,所述预设配置信息中包含:各个轨迹点在虚拟环境中的位置和各个轨迹点的旋转值,针对每一轨迹点,该轨迹点的旋转值表示:当虚拟相机移动到该轨迹点时,所述虚拟相机的拍摄方向;
虚拟轨迹绘制模块1202:用于基于所述多个轨迹点,绘制虚拟相机运行的虚拟轨迹;
第一构建模块1203:用于针对所述虚拟轨迹中每一虚拟轨迹段,构建与该虚拟轨迹段对应的具有碰撞能力的网格组件,其中,所述虚拟轨迹段指:所述虚拟轨迹中的位置相邻的轨迹点之间的轨迹段,每一网格组件存在与该网格组件对应的虚拟轨迹段重合的边;
碰撞检测模块1204:用于检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。
由以上可见,针对每一虚拟轨迹段,都可以构建一个与该虚拟轨迹段对应的网格组件,而该虚拟轨迹段位于该虚拟轨迹段对应的网格组件之中,说明可以从上述网格组件中确定该虚拟轨迹段,进而可以说明上述网格组件能够表示虚拟相机在该虚拟轨迹段中运行时的虚拟轨迹,并且,上述网格组件是具有碰撞能力的,因此如果存在网格组件与虚拟物体发生碰撞,说明虚拟相机沿着该网格组件表示的虚拟轨迹进行拍摄时,与虚拟物体发生碰撞。因此本发明实施例能够检测虚拟相机是否有可能与虚拟物体发生碰撞,并且还能够确定虚拟相机与虚拟物体发生碰撞的虚拟轨迹。
本发明的一个实施例中,上述第一构建模块1203,具有用于:
确定该虚拟轨迹段中的起点轨迹点和终点轨迹点的位置和旋转值;
基于所述起点轨迹点和终点轨迹点的位置和旋转值,基于具备碰撞能力的网格体模型构建与该虚拟轨迹段对应的网格组件。
由以上可见,首先获取该虚拟轨迹段中的起点轨迹点和终点轨迹点,因为该虚拟轨迹段是基于该虚拟轨迹段的起点轨迹点和终点轨迹点绘制的,所以获取该虚拟轨迹段中的起点轨迹点和终点轨迹点后,也就获取的该虚拟轨迹段的形状,然后基于该虚拟轨迹段的形状,能够获取与该虚拟轨迹段对应的网格组件,另外网格组件是基于具有碰撞能力的网格体模型构建的,所以上述网格组件也具有碰撞能力。因此本发明实施例能够构建与虚拟轨迹段对应的具有碰撞能力的网格组件。
图13为本发明实施例提供的第二种虚拟相机碰撞检测方法的结构示意图,与图12所示的实施例相比,上述装置还包括以下模块:1205-1206。
轨迹段编辑模块1205:用于针对检测到的每一碰撞轨迹段,编辑该碰撞轨迹段;
第二构建模块1206:用于基于编辑后的碰撞轨迹段,构建与所述编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件,并重新触发所述碰撞检测模块。
由以上可见,若该碰撞轨迹段中的起点轨迹点的位置发生变化,则基于位置发生变化的起点轨迹点和位置未发生变化的终点轨迹点重新绘制的虚拟轨迹段与该碰撞轨迹段的形状应该不同,或者若该碰撞轨迹段中的终点轨迹点的位置发生变化,则基于位置未发生变化的起点轨迹点和位置发生变化的终点轨迹点重新绘制的虚拟轨迹段与该碰撞轨迹段的形状应该不同,或者若该碰撞轨迹段中的起点轨迹点和终点轨迹点的位置都发生变化,则基于位置发生变化的起点轨迹点和位置发生变化的终点轨迹点重新绘制的虚拟轨迹段与该碰撞轨迹段的形状应该不同。因此本发明实施例可以通过更改该碰撞轨迹段中的起点轨迹点和/或终点轨迹点的位置,重新绘制虚拟轨迹段,使得该碰撞轨迹段发生变化。
本发明的一个实施例中,上述轨迹段编辑模块1205,具体用于:
更改该碰撞轨迹段中的起点轨迹点和/或终点轨迹点在所述虚拟环境中的位置;
在更改轨迹点的位置之后,重新绘制起点轨迹点和终点轨迹点之间的虚拟轨迹段。
由以上可见,本发明实施例在确定碰撞轨迹段之后,为了使虚拟相机沿着上述碰撞轨迹段拍摄时,不会与虚拟物体发生碰撞,可以编辑上述碰撞轨迹段,使得编辑后的碰撞轨迹段与编辑前的碰撞轨迹段不同,然后构建与上述编辑后的碰撞轨迹段对应的网格组件,重新检测与上述编辑后的碰撞轨迹段对应的网格组件是否与虚拟物体发生碰撞。
图14为本发明实施例提供的第三种虚拟相机碰撞检测方法的结构示意图,与图13所示的实施例相比,上述轨迹段编辑模块1205包括子模块:1205A-1205C。
配置信息确定子模块1205A:用于基于该碰撞轨迹段中的起点轨迹点和终点轨迹点之间的位置关系和旋转值关系,确定待添加的新增轨迹点的配置信息,所述新增轨迹点的配置信息中包含:所述新增轨迹点在所述虚拟环境中的位置和所述新增轨迹点的旋转值;
轨迹点添加子模块1205B:用于基于所述新增轨迹点的配置信息,在所述虚拟环境中增加碰撞轨迹点;
第一轨迹段绘制子模块1205C:用于基于所述新增轨迹点、该碰撞轨迹段中的起点轨迹点和终点轨迹点,绘制该碰撞轨迹段中的起点轨迹点和所述新增轨迹点之间的第一轨迹段和所述新增轨迹点和该碰撞轨迹段中的终点轨迹点和之间的第一轨迹段。
由以上可见,本发明实施例可以向虚拟环境中添加新增轨迹点,由于新增轨迹点的位置可能不位于该碰撞轨迹段中,因此,基于该碰撞轨迹段中的起点轨迹点和上述新增轨迹绘制的第一轨迹段可能与该碰撞轨迹段不同,基于上述新增轨迹点和该碰撞轨迹段中的终点轨迹点绘制的第二轨迹段也可能与该碰撞轨迹段不同。因此,本发明实施例可以通过向虚拟环境中添加新增轨迹点,使得该碰撞轨迹段发生变化。
图15为本发明实施例提供的第四种虚拟相机碰撞检测方法的结构示意图,与图14所示的实施例相比,上述装置还包括:1207。
运行时长分配模块1207:用于基于所述第一轨迹段的长度和第二轨迹段的长度之间的关系,分配所述碰撞轨迹段的运行时长,得到第一轨迹段的运行时长和第二轨迹段的运行时长,其中,每一虚拟轨迹段的运行时长是:虚拟相机在该虚拟轨迹段中运行所需的预设时长。
由以上可见,在对碰撞轨迹段重新绘制为第一轨迹段和第二轨迹段之后,碰撞轨迹段的长度、形状会发生变化,若虚拟相机还按照重新重新绘制上述碰撞轨迹段之前的运行速度进行拍摄,效果可能不会很好,而本发明实施例在碰撞轨迹段重新绘制为第一轨迹段和第二轨迹段之后,可以重新分配碰撞轨迹段的运行时长。
另外,本发明实施例是基于第一轨迹段的长度和第二轨迹段的长度之间的关系,重新分配碰撞轨迹段的运行时长,得到第一轨迹段的运行时长和第二轨迹段的运行时长,因此本发明实施例可以灵活的得到第一轨迹段的运行时长和第二轨迹段的运行时长。
图16为本发明实施例提供的第五种虚拟相机碰撞检测方法的结构示意图,与图13所示的实施例相比,上述轨迹段编辑模块1205包括子模块:1205D-1205G。
轨迹点删除子模块1205D:用于删除该碰撞轨迹段中的起点轨迹点或终点轨迹点;
轨迹点判断子模块1205E:用于判断所删除的轨迹点是否为所述虚拟轨迹的起点或所述虚拟轨迹的终点;
轨迹段删除子模块1205F:用于删除该碰撞轨迹段,将该碰撞轨迹段的终点轨迹点作为所述虚拟轨迹的起点或将该碰撞轨迹段的起点轨迹点作为所述虚拟轨迹的终点;
第二轨迹段绘制子模块1205G:用于绘制所述第一轨迹点与所述第二轨迹点之间的第三轨迹段,其中,所述第一轨迹点是全部虚拟轨迹中与所删除的轨迹点前序相邻的轨迹点,所述第二轨迹点是全部虚拟轨迹中与所删除的轨迹点后序相邻的轨迹点。
由以上可见,本发明实施例可以删除该碰撞轨迹段中的起点轨迹点或终点轨迹点,在删除上述碰撞轨迹段中的任一轨迹点后,则只能根据虚拟环境中的其他轨迹点和碰撞轨迹段中的未删除的轨迹点重新绘制虚拟轨迹段或者直接删除该碰撞轨迹段,而虚拟环境中的其他轨迹点的位置和旋转度可能与删除的轨迹点的位置和旋转度不同,因此重新绘制的虚拟轨迹段与上述碰撞轨迹段也可能不同。因此,发明实施例可以通过删除该碰撞轨迹段中的起点轨迹点或终点轨迹点的方式,使该碰撞轨迹段发生变化。
图17为本发明实施例提供的第六种虚拟相机碰撞检测方法的结构示意图,与图16所示的实施例相比,上述装置还包括:1208。
运行时长设置模块1208:用于将所述第三轨迹段的运行时长设置为第一时长与第二时长之和,其中,所述第一时长为:在绘制所述第三轨迹段之前,所述第一轨迹点与所删除的轨迹点之间的虚拟轨迹段的运行时长,所述第二时长为:在绘制所述第三轨迹段之前,所删除的轨迹点之间与所述第二轨迹点之间的虚拟轨迹段的运行时长,每一虚拟轨迹段的运行时长是:虚拟相机在该虚拟轨迹段中运行所需的预设时长。
由以上可见,第一轨迹点与所删除的轨迹点之间的虚拟轨迹段的运行时长时第一时长,所删除的轨迹点之间与上述第二轨迹点之间的虚拟轨迹段的运行时长时第二时长,因为上述第一时长与上述第二时长之和等于在绘制上述第三轨迹段之前,虚拟相机在上述第一轨迹点和上述第二轨迹点之间的虚拟轨迹段之间的预设时长,所以在绘制第三轨迹段之后,为了使上述第三轨迹段的运行时长等于在绘制上述第三轨迹段之前,虚拟相机在上述第一轨迹点和上述第二轨迹点之间的虚拟轨迹段之间的预设时长,可以将上述第三轨迹段的运行时长设置为第一时长与第二时长之和。
本发明实施例还提供了一种电子设备,如图18所示,包括处理器1801、通信接口1802、存储器1803和通信总线1804,其中,处理器1801,通信接口1802,存储器1803通过通信总线1804完成相互间的通信,
存储器1803,用于存放计算机程序;
处理器1801,用于执行存储器1803上所存放的程序时,实现上述方法实施例中任一虚拟相机碰撞检测方法的步骤。
应用本发明实施例提供的电子设备进行虚拟相机碰撞检测时,每一虚拟轨迹段,都可以构建一个与该虚拟轨迹段对应的网格组件,而该虚拟轨迹段位于该虚拟轨迹段对应的网格组件之中,说明可以从上述网格组件中确定该虚拟轨迹段,进而可以说明上述网格组件能够表示虚拟相机在该虚拟轨迹段中运行时的虚拟轨迹,并且,上述网格组件是具有碰撞能力的,因此如果存在网格组件与虚拟物体发生碰撞,说明虚拟相机沿着该网格组件表示的虚拟轨迹进行拍摄时,与虚拟物体发生碰撞。因此本发明实施例能够检测虚拟相机是否有可能与虚拟物体发生碰撞,并且还能够确定虚拟相机与虚拟物体发生碰撞的虚拟轨迹。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一虚拟相机碰撞检测方法的步骤。
应用本发明实施例提供的电子设备进行虚拟相机碰撞检测时,针对每一虚拟轨迹段,都可以构建一个与该虚拟轨迹段对应的网格组件,而该虚拟轨迹段位于该虚拟轨迹段对应的网格组件之中,说明可以从上述网格组件中确定该虚拟轨迹段,进而可以说明上述网格组件能够表示虚拟相机在该虚拟轨迹段中运行时的虚拟轨迹,并且,上述网格组件是具有碰撞能力的,因此如果存在网格组件与虚拟物体发生碰撞,说明虚拟相机沿着该网格组件表示的虚拟轨迹进行拍摄时,与虚拟物体发生碰撞。因此本发明实施例能够检测虚拟相机是否有可能与虚拟物体发生碰撞,并且还能够确定虚拟相机与虚拟物体发生碰撞的虚拟轨迹。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一虚拟相机碰撞检测方法。
应用本发明实施例提供的电子设备进行虚拟相机碰撞检测时,针对每一虚拟轨迹段,都可以构建一个与该虚拟轨迹段对应的网格组件,而该虚拟轨迹段位于该虚拟轨迹段对应的网格组件之中,说明可以从上述网格组件中确定该虚拟轨迹段,进而可以说明上述网格组件能够表示虚拟相机在该虚拟轨迹段中运行时的虚拟轨迹,并且,上述网格组件是具有碰撞能力的,因此如果存在网格组件与虚拟物体发生碰撞,说明虚拟相机沿着该网格组件表示的虚拟轨迹进行拍摄时,与虚拟物体发生碰撞。因此本发明实施例能够检测虚拟相机是否有可能与虚拟物体发生碰撞,并且还能够确定虚拟相机与虚拟物体发生碰撞的虚拟轨迹。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (18)
1.一种虚拟相机碰撞检测方法,其特征在于,所述方法包括:
基于预设配置信息,在虚拟环境中添加多个轨迹点,所述预设配置信息中包含:各个轨迹点在虚拟环境中的位置和各个轨迹点的旋转值,针对每一轨迹点,该轨迹点的旋转值表示:当虚拟相机移动到该轨迹点时,所述虚拟相机的拍摄方向;
基于所述多个轨迹点,绘制虚拟相机运行的虚拟轨迹;
针对所述虚拟轨迹中每一虚拟轨迹段,构建与该虚拟轨迹段对应的具有碰撞能力的网格组件,其中,所述虚拟轨迹段指:所述虚拟轨迹中的位置相邻的轨迹点之间的轨迹段,每一虚拟轨迹段全部位于该虚拟轨迹段对应的网格组件中;
检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。
2.根据权利要求1所述的方法,其特征在于,在所述检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段之后,还包括:
针对检测到的每一碰撞轨迹段,编辑该碰撞轨迹段;
基于编辑后的碰撞轨迹段,构建与所述编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件,并返回执行检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段的步骤。
3.根据权利要求2所述的方法,其特征在于,所述编辑该碰撞轨迹段,包括:
更改该碰撞轨迹段中的起点轨迹点和/或终点轨迹点在所述虚拟环境中的位置;
在更改轨迹点的位置之后,重新绘制起点轨迹点和终点轨迹点之间的虚拟轨迹段。
4.根据权利要求2所述的方法,其特征在于,所述编辑该碰撞轨迹段,包括:
基于该碰撞轨迹段中的起点轨迹点和终点轨迹点之间的位置关系和旋转值关系,确定待添加的新增轨迹点的配置信息,所述新增轨迹点的配置信息中包含:所述新增轨迹点在所述虚拟环境中的位置和所述新增轨迹点的旋转值;
基于所述新增轨迹点的配置信息,在所述虚拟环境中增加碰撞轨迹点;
基于所述新增轨迹点、该碰撞轨迹段中的起点轨迹点和终点轨迹点,绘制该碰撞轨迹段中的起点轨迹点和所述新增轨迹点之间的第一轨迹段和所述新增轨迹点和该碰撞轨迹段中的终点轨迹点和之间的第二轨迹段。
5.根据权利要求4所述的方法,其特征在于,在所述绘制该碰撞轨迹段中的起点轨迹点和所述新增轨迹点之间的第一轨迹段和所述新增轨迹点和该碰撞轨迹段中的终点轨迹点和之间的第二轨迹段之后,还包括:
基于所述第一轨迹段的长度和第二轨迹段的长度之间的关系,分配所述碰撞轨迹段的运行时长,得到第一轨迹段的运行时长和第二轨迹段的运行时长,其中,每一虚拟轨迹段的运行时长是:虚拟相机在该虚拟轨迹段中运行所需的预设时长。
6.根据权利要求2所述的方法,其特征在于,所述编辑该碰撞轨迹段,包括:
删除该碰撞轨迹段中的起点轨迹点或终点轨迹点;
判断所删除的轨迹点是否为所述虚拟轨迹的起点或所述虚拟轨迹的终点;
若是,删除该碰撞轨迹段,将该碰撞轨迹段的终点轨迹点作为所述虚拟轨迹的起点或将该碰撞轨迹段的起点轨迹点作为所述虚拟轨迹的终点;
若否,绘制所述第一轨迹点与所述第二轨迹点之间的第三轨迹段,其中,所述第一轨迹点是虚拟轨迹中与所删除的轨迹点前序相邻的轨迹点,所述第二轨迹点是虚拟轨迹中与所删除的轨迹点后序相邻的轨迹点。
7.根据权利要求6所述的方法,其特征在于,在所述绘制所述第一轨迹点与所述第二轨迹点之间的第三轨迹段之后,还包括:
将所述第三轨迹段的运行时长设置为第一时长与第二时长之和,其中,所述第一时长为:在绘制所述第三轨迹段之前,所述第一轨迹点与所删除的轨迹点之间的虚拟轨迹段的运行时长,所述第二时长为:在绘制所述第三轨迹段之前,所删除的轨迹点之间与所述第二轨迹点之间的虚拟轨迹段的运行时长,每一虚拟轨迹段的运行时长是:虚拟相机在该虚拟轨迹段中运行所需的预设时长。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述构建与该虚拟轨迹段对应的具有碰撞能力的网格组件,包括:
确定该虚拟轨迹段中的起点轨迹点和终点轨迹点的位置和旋转值;
基于所述起点轨迹点和终点轨迹点的位置和旋转值,基于具备碰撞能力的网格体模型构建与该虚拟轨迹段对应的网格组件。
9.一种虚拟相机碰撞检测装置,其特征在于,所述装置包括:
轨迹点添加模块,用于基于预设配置信息,在虚拟环境中添加多个轨迹点,所述预设配置信息中包含:各个轨迹点在虚拟环境中的位置和各个轨迹点的旋转值,针对每一轨迹点,该轨迹点的旋转值表示:当虚拟相机移动到该轨迹点时,所述虚拟相机的拍摄方向;
虚拟轨迹绘制模块,用于基于所述多个轨迹点,绘制虚拟相机运行的虚拟轨迹;
第一构建模块,用于针对所述虚拟轨迹中每一虚拟轨迹段,构建与该虚拟轨迹段对应的具有碰撞能力的网格组件,其中,所述虚拟轨迹段指:所述虚拟轨迹中的位置相邻的轨迹点之间的轨迹段,每一虚拟轨迹段全部位于该虚拟轨迹段对应的网格组件中;
碰撞检测模块,用于检测与虚拟环境中的具有碰撞能力的虚拟物体发生碰撞的网格组件,并将检测到的网格组件对应的虚拟轨迹段确定为导致虚拟相机发生碰撞的碰撞轨迹段。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
轨迹段编辑模块,用于针对检测到的每一碰撞轨迹段,编辑该碰撞轨迹段;
第二构建模块,用于基于编辑后的碰撞轨迹段,构建与所述编辑后的碰撞轨迹段对应的具有碰撞能力的网格组件,并重新触发执行所述碰撞检测模块。
11.根据权利要求10所述的装置,其特征在于,所述轨迹段编辑模块,具体用于:
更改该碰撞轨迹段中的起点轨迹点和/或终点轨迹点在所述虚拟环境中的位置;
在更改轨迹点的位置之后,重新绘制起点轨迹点和终点轨迹点之间的虚拟轨迹段。
12.根据权利要求10所述的装置,其特征在于,所述轨迹段编辑模块,包括:
配置信息确定子模块,用于基于该碰撞轨迹段中的起点轨迹点和终点轨迹点之间的位置关系和旋转值关系,确定待添加的新增轨迹点的配置信息,所述新增轨迹点的配置信息中包含:所述新增轨迹点在所述虚拟环境中的位置和所述新增轨迹点的旋转值;
轨迹点添加子模块,用于基于所述新增轨迹点的配置信息,在所述虚拟环境中增加碰撞轨迹点;
第一轨迹段绘制子模块,用于基于所述新增轨迹点、该碰撞轨迹段中的起点轨迹点和终点轨迹点,绘制该碰撞轨迹段中的起点轨迹点和所述新增轨迹点之间的第一轨迹段和所述新增轨迹点和该碰撞轨迹段中的终点轨迹点和之间的第一轨迹段。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
运行时长分配模块,用于基于所述第一轨迹段的长度和第二轨迹段的长度之间的关系,分配所述碰撞轨迹段的运行时长,得到第一轨迹段的运行时长和第二轨迹段的运行时长,其中,每一虚拟轨迹段的运行时长是:虚拟相机在该虚拟轨迹段中运行所需的预设时长。
14.根据权利要求10所述的装置,其特征在于,所述轨迹段编辑模块,包括:
轨迹点删除子模块,用于删除该碰撞轨迹段中的起点轨迹点或终点轨迹点
轨迹点判断子模块,用于判断所删除的轨迹点是否为所述虚拟轨迹的起点或所述虚拟轨迹的终点;
轨迹段删除子模块,用于删除该碰撞轨迹段,将该碰撞轨迹段的终点轨迹点作为所述虚拟轨迹的起点或将该碰撞轨迹段的起点轨迹点作为所述虚拟轨迹的终点;;
第二轨迹段绘制子模块,绘制所述第一轨迹点与所述第二轨迹点之间的第三轨迹段,其中,所述第一轨迹点是虚拟轨迹中与所删除的轨迹点前序相邻的轨迹点,所述第二轨迹点是虚拟轨迹中与所删除的轨迹点后序相邻的轨迹点。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
运行时长设置模块,用于将所述第三轨迹段的运行时长设置为第一时长与第二时长之和,其中,所述第一时长为:在绘制所述第三轨迹段之前,所述第一轨迹点与所删除的轨迹点之间的虚拟轨迹段的运行时长,所述第二时长为:在绘制所述第三轨迹段之前,所删除的轨迹点之间与所述第二轨迹点之间的虚拟轨迹段的运行时长,每一虚拟轨迹段的运行时长是:虚拟相机在该虚拟轨迹段中运行所需的预设时长。
16.根据权利要求9-15中任一项所述的装置,其特征在于,所述第一构建模块,具体用于:
确定该虚拟轨迹段中的起点轨迹点和终点轨迹点的位置和旋转值;
基于所述起点轨迹点和终点轨迹点的位置和旋转值,基于具备碰撞能力的网格体模型构建与该虚拟轨迹段对应的网格组件。
17.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211203098.1A CN115564930A (zh) | 2022-09-29 | 2022-09-29 | 一种虚拟相机碰撞检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211203098.1A CN115564930A (zh) | 2022-09-29 | 2022-09-29 | 一种虚拟相机碰撞检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115564930A true CN115564930A (zh) | 2023-01-03 |
Family
ID=84742735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211203098.1A Pending CN115564930A (zh) | 2022-09-29 | 2022-09-29 | 一种虚拟相机碰撞检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115564930A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117057055A (zh) * | 2023-07-19 | 2023-11-14 | 湖北工业大学 | 基于虚拟运行轨迹的缆机碰撞概率演化分析方法 |
-
2022
- 2022-09-29 CN CN202211203098.1A patent/CN115564930A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117057055A (zh) * | 2023-07-19 | 2023-11-14 | 湖北工业大学 | 基于虚拟运行轨迹的缆机碰撞概率演化分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733293B (zh) | 书写轨迹处理方法及装置 | |
JP2022523436A (ja) | ゲームオブジェクトの選択方法及び装置 | |
CN111728535B (zh) | 一种生成清扫路径的方法、装置、电子设备及存储介质 | |
CN115564930A (zh) | 一种虚拟相机碰撞检测方法及装置 | |
CN111524211B (zh) | 笔迹擦除方法、装置及设备 | |
JP2022038803A (ja) | 設備管理プログラム、設備管理方法、および設備管理システム | |
CN104243590A (zh) | 资源对象推荐方法和装置 | |
CN110458920A (zh) | 一种笔迹擦除方法及装置 | |
US20220277523A1 (en) | Vr scene and interaction method thereof, and terminal device | |
Abdullah et al. | A case study in COSMIC functional size measurement: angry bird mobile application | |
CN112083870A (zh) | 信息识别方法及设备 | |
CN105677169A (zh) | 鼠标指针自动跟随光标的方法及装置 | |
CN111428430B (zh) | 电路设计中的电路器件信息获取方法、装置、设备及介质 | |
CN116738516A (zh) | 三维仿真模型的构建方法、装置、计算机设备及存储介质 | |
CN113776520B (zh) | 地图构建、使用方法、装置、机器人和介质 | |
CN114518815B (zh) | 建筑图纸的显示方法、装置、设备、介质及程序产品 | |
CN115290066A (zh) | 一种误差校正方法、装置及移动设备 | |
CN106033349A (zh) | 一种对象位置调整方法及装置 | |
CN114494960A (zh) | 视频处理方法及装置、电子设备及计算机可读存储介质 | |
CN115248629A (zh) | 一种数据可视化界面管理方法、系统及设备 | |
CN112070829B (zh) | 任务图像中任务节点位置的确定方法、装置及电子设备 | |
KR20210014285A (ko) | 3d 스캐닝 기반 플랜트 엔지니어링 응용지원 솔루션 | |
CN112051958A (zh) | 图纸多屏终端互动方法及相关装置 | |
CN116617669B (zh) | 一种碰撞测试及其检测方法、设备与存储介质 | |
CN107845122A (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 |