CN114627149A - 时空轨迹模拟方法、装置、电子设备及计算机存储介质 - Google Patents
时空轨迹模拟方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN114627149A CN114627149A CN202210107342.8A CN202210107342A CN114627149A CN 114627149 A CN114627149 A CN 114627149A CN 202210107342 A CN202210107342 A CN 202210107342A CN 114627149 A CN114627149 A CN 114627149A
- Authority
- CN
- China
- Prior art keywords
- motion
- webgl
- current
- point
- frame
- 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
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004088 simulation Methods 0.000 title claims abstract description 70
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 230000033001 locomotion Effects 0.000 claims abstract description 1146
- 239000011159 matrix material Substances 0.000 claims abstract description 55
- 230000002776 aggregation Effects 0.000 claims abstract description 10
- 238000004220 aggregation Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 93
- 238000012545 processing Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 20
- 230000009466 transformation Effects 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 30
- 238000005516 engineering process Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/06—Topological mapping of higher dimensional structures onto lower dimensional surfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供了一种时空轨迹模拟方法、装置、电子设备及计算机存储介质,涉及数字孪生领域。该方法包括:确定孪生体的基准空间坐标点和基准时间点,基准空间坐标点为预先构建的孪生体坐标系的原点,基准时间点为N*N的时间矩阵,N为大于1的整数;接着,基于WebGL,根据基准空间坐标点、基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟孪生体经过每个运动阶段的时空轨迹,其中,运动信息包括运动时长、运动模式和运动参数。本申请实施例极大减少了空间坐标数据的存储量。
Description
技术领域
本申请涉及数字孪生技术领域,具体而言,本申请涉及一种时空轨迹模拟方法、装置、电子设备及计算机存储介质。
背景技术
基于WebGL实现的数字孪生技术,多利用WebGL的GPU(graphics processingunit,图像处理器)运算能力去构建三维世界、渲染三维模型等孪生体,以此实现对现实世界的孪生。这种数字孪生,类似于在某个时刻按下相机形成“数字快照”,本质上是对客观世界在某一个时刻的数字镜像。孪生体作为数据载体,不应只是一个静态的数据载体,而应是能够被连接跟踪的动态载体,在时空轨迹上实现能够被标记、连接和跟踪的实时动态的数字孪生。
孪生体运动过程中的时空数据是一种海量数据集合,为了减少数据存储量,通常采用下采样的方法对数据进行抽稀,即采用采样数据储存的方式,采样后的每条数据代表孪生体在某个时间点的空间位置。然而,这种时空数据存储方式,不仅降低了数据精度,还导致孪生体的空间数据与时间数据在时间轴上不是连续性关系,而更类似于一种拼接关系,即孪生体在时间与空间上连续性差。
发明内容
本申请实施例提供了一种时空轨迹模拟方法、装置、电子设备及计算机存储介质,可以解决孪生体的时空轨迹模拟在时间与空间上连续性差的的问题。技术方案如下:
根据本申请实施例的一个方面,提供了一种时空轨迹模拟方法,该方法包括:
确定孪生体的基准空间坐标点和基准时间点,基准空间坐标点为预先构建的孪生体坐标系的原点,基准时间点为N*N的时间矩阵,N为大于1的整数;
基于WebGL,根据基准空间坐标点、基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟孪生体经过每个运动阶段的时空轨迹,其中,运动信息包括运动时长、运动模式和运动参数。
在一种可能的实现方式中,确定孪生体的基准空间坐标点,包括:
基于WebGL三维世界坐标系和孪生体的顶点坐标数据,确定孪生体的坐标控制点;
根据透视投影矩阵和孪生体的坐标控制点,确定坐标系转换矩阵;
根据坐标系转换矩阵和WebGL三维世界坐标系,构建孪生体的孪生体坐标系,并确定孪生体坐标系的原点为孪生体的基准空间坐标点。
在一种可能的实现方式中,基于WebGL三维世界坐标系和孪生体的顶点坐标数据,确定孪生体的坐标控制点,包括:
基于WebGL三维世界坐标系,根据孪生体的顶点坐标数据,构建孪生体的球体包围盒;
获取球体包围盒的中心点并将其确定为孪生体的中心点;
为孪生体的中心点增加取值为预定数值的第四维数据,并将增加第四维数据后的孪生体的中心点确定为坐标控制点。
在一种可能的实现方式中,基于WebGL,根据基准空间坐标点、基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟孪生体经过每个运动阶段的时空轨迹,包括:
步骤A:基于PAA运动序列表,确定孪生体的当前运动阶段和当前运动阶段对应的第一运动时长、第一运动模式和第一运动参数;
步骤B:根据运动模式库,确定第一运动模式对应的第一运动函数;
步骤C:基于WebGL,根据基准空间坐标点确定当前运动阶段的第一基准空间坐标点和根据基准时间点确定当前运动阶段的第一基准时间点;
步骤D:基于WebGL,根据第一基准空间坐标点、第一基准时间点、预先设定的运动时间更新函数、第一运动时长、第一运动参数和第一运动函数,模拟孪生体经过当前运动阶段的时空轨迹;
当基于第一运动时长确定当前运动阶段结束时,将当前运动阶段更新为当前运动阶段的下一运动阶段,并重复步骤A至步骤D,直到完成孪生体经过PAA运动序列表包括的每个运动阶段的时空轨迹模拟。
在一种可能的实现方式中,基于WebGL,根据基准空间坐标点确定当前运动阶段的第一基准空间坐标点,包括:
当当前运动阶段是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准空间坐标点为基准空间坐标点;
当当前运动阶段不是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准空间坐标点为当前运动阶段的前一运动阶段的WebGL最后一帧运动后的空间坐标点,其中,前一运动阶段的WebGL最后一帧运动后的空间坐标点是基于前一运动阶段的运动模式对应的运动函数,根据前一运动阶段的运动时长和运动参数计算得到的。
在一种可能的实现方式中,基于WebGL,根据基准时间点确定当前运动阶段的第一基准时间点,包括:
当当前运动阶段是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准时间点为基准时间点;
当当前运动阶段不是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准时间点为当前运动阶段的前一运动阶段的WebGL最后一帧运动后的时间点,其中,前一运动阶段的WebGL最后一帧运动后的时间点是基于预先设定的运动时间更新函数,根据前一运动阶段的基准时间点和运动时长计算得到的。
在一种可能的实现方式中,当前运动阶段包括多个WebGL帧;基于WebGL,根据第一基准空间坐标点、第一基准时间点、预先设定的运动时间更新函数、第一运动时长、第一运动参数和第一运动函数,模拟孪生体经过当前运动阶段的时空轨迹,包括:
步骤E,根据第一基准空间坐标点确定当前运动阶段的WebGL当前帧的第二基准空间坐标点,以及根据第一基准时间点确定当前运动阶段的WebGL当前帧的第二基准时间点;
步骤F,基于第一运动函数,根据第二基准空间坐标点和第一运动参数,确定WebGL当前帧运动后的空间坐标点,并将WebGL当前帧运动后的空间坐标点确定为WebGL下一帧的第二基准空间坐标点,WebGL下一帧是WebGL当前帧的下一WebGL帧;
步骤G,基于预先设定的运动时间更新函数,根据第二基准时间点和WebGL当前帧的运动所需的时间,确定WebGL当前帧运动后的时间点,并将WebGL当前帧运动后的时间点确定为WebGL下一帧的第二基准时间点;
当WebGL当前帧运动结束时,将WebGL当前帧更新为WebGL当前帧的下一WebGL帧,并重复步骤E至步骤G,直到完成当前运动阶段包括的每个WebGL帧的时空轨迹模拟。
在一种可能的实现方式中,根据第一基准空间坐标点确定当前运动阶段的WebGL当前帧的第二基准空间坐标点,包括:
当WebGL当前帧是当前运动阶段的WebGL第一帧时,确定第二基准空间坐标点为第一基准空间坐标点;
当WebGL当前帧不是当前运动阶段的WebGL第一帧时,确定第二基准空间坐标点为WebGL前一帧运动后的空间坐标点,WebGL前一帧是WebGL当前帧的前一WebGL帧;
根据第一基准时间点确定当前运动阶段的WebGL当前帧的第二基准时间点,包括:
当WebGL当前帧是当前运动阶段的WebGL第一帧时,确定第二基准时间点为第一基准时间点;
当WebGL当前帧不是当前运动阶段的WebGL第一帧时,确定第二基准时间点为WebGL前一帧运动后的时间点。
在一种可能的实现方式中,基于第一运动时长确定当前运动阶段是否结束,包括:
确定当前运动阶段的WebGL最后一帧运动后的时间点和WebGL第一帧的基准时间点之间的时间差值;
将第一运动时长与时间差值进行比较,若判定时间差值等于第一运动时长,或者判定第一运动时长与时间差值之间的差值小于一个WebGL帧的运动所需的时间,确定当前运动阶段结束,否则确定当前运动阶段未结束。
在一种可能的实现方式中,运动模式包括以下至少一种:
线性运动模式;埃尔米特Hermite运动模式;拉格朗日Lagrange运动模式。
根据本申请实施例的另一个方面,提供了一种时空轨迹模拟装置,该装置包括:
确定模块,用于确定孪生体的基准空间坐标点和基准时间点,基准空间坐标点为预先构建的孪生体坐标系的原点,基准时间点为N*N的时间矩阵,N为大于1的整数;
处理模块,用于基于WebGL,根据基准空间坐标点、基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟孪生体经过每个运动阶段的时空轨迹,其中,运动信息包括运动时长、运动模式和运动参数。
在一种可能的实现方式中,确定模块在确定孪生体的基准空间坐标点时,用于:
基于WebGL三维世界坐标系和孪生体的顶点坐标数据,确定孪生体的坐标控制点;
根据透视投影矩阵和孪生体的坐标控制点,确定坐标系转换矩阵;
根据坐标系转换矩阵和WebGL三维世界坐标系,构建孪生体的孪生体坐标系,并确定孪生体坐标系的原点为孪生体的基准空间坐标点。
在一种可能的实现方式中,确定模块在基于WebGL三维世界坐标系和孪生体的顶点坐标数据,确定孪生体的坐标控制点时,用于:
基于WebGL三维世界坐标系,根据孪生体的顶点坐标数据,构建孪生体的球体包围盒;
获取球体包围盒的中心点并将其确定为孪生体的中心点;
为孪生体的中心点增加取值为预定数值的第四维数据,并将增加第四维数据后的孪生体的中心点确定为坐标控制点。
在一种可能的实现方式中,处理模块在基于WebGL,根据基准空间坐标点、基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟孪生体经过每个运动阶段的时空轨迹时,用于:
步骤A:基于PAA运动序列表,确定孪生体的当前运动阶段和当前运动阶段对应的第一运动时长、第一运动模式和第一运动参数;
步骤B:根据运动模式库,确定第一运动模式对应的第一运动函数;
步骤C:基于WebGL,根据基准空间坐标点确定当前运动阶段的第一基准空间坐标点和根据基准时间点确定当前运动阶段的第一基准时间点;
步骤D:基于WebGL,根据第一基准空间坐标点、第一基准时间点、预先设定的运动时间更新函数、第一运动时长、第一运动参数和第一运动函数,模拟孪生体经过当前运动阶段的时空轨迹;
当基于第一运动时长确定当前运动阶段结束时,将当前运动阶段更新为当前运动阶段的下一运动阶段,并重复步骤A至步骤D,直到完成孪生体经过PAA运动序列表包括的每个运动阶段的时空轨迹模拟。
在一种可能的实现方式中,处理模块在基于WebGL,根据基准空间坐标点确定当前运动阶段的第一基准空间坐标点时,用于:
当当前运动阶段是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准空间坐标点为基准空间坐标点;
当当前运动阶段不是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准空间坐标点为当前运动阶段的前一运动阶段的WebGL最后一帧运动后的空间坐标点,其中,前一运动阶段的WebGL最后一帧运动后的空间坐标点是基于前一运动阶段的运动模式对应的运动函数,根据前一运动阶段的运动时长和运动参数计算得到的。
在一种可能的实现方式中,处理模块在基于WebGL,根据基准时间点确定当前运动阶段的第一基准时间点时,用于:
当当前运动阶段是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准时间点为基准时间点;
当当前运动阶段不是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准时间点为当前运动阶段的前一运动阶段的WebGL最后一帧运动后的时间点,其中,前一运动阶段的WebGL最后一帧运动后的时间点是基于预先设定的运动时间更新函数,根据前一运动阶段的基准时间点和运动时长计算得到的。
在一种可能的实现方式中,处理模块在当前运动阶段包括多个WebGL帧;基于WebGL,根据第一基准空间坐标点、第一基准时间点、预先设定的运动时间更新函数、第一运动时长、第一运动参数和第一运动函数,模拟孪生体经过当前运动阶段的时空轨迹时,用于:
步骤E,根据第一基准空间坐标点确定当前运动阶段的WebGL当前帧的第二基准空间坐标点,以及根据第一基准时间点确定当前运动阶段的WebGL当前帧的第二基准时间点;
步骤F,基于第一运动函数,根据第二基准空间坐标点和第一运动参数,确定WebGL当前帧运动后的空间坐标点,并将WebGL当前帧运动后的空间坐标点确定为WebGL下一帧的第二基准空间坐标点,WebGL下一帧是WebGL当前帧的下一WebGL帧;
步骤G,基于预先设定的运动时间更新函数,根据第二基准时间点和WebGL当前帧的运动所需的时间,确定WebGL当前帧运动后的时间点,并将WebGL当前帧运动后的时间点确定为WebGL下一帧的第二基准时间点;
当WebGL当前帧运动结束时,将WebGL当前帧更新为WebGL当前帧的下一WebGL帧,并重复步骤E至步骤G,直到完成当前运动阶段包括的每个WebGL帧的时空轨迹模拟。
在一种可能的实现方式中,处理模块在根据第一基准空间坐标点确定当前运动阶段的WebGL当前帧的第二基准空间坐标点时,用于:
当WebGL当前帧是当前运动阶段的WebGL第一帧时,确定第二基准空间坐标点为第一基准空间坐标点;
当WebGL当前帧不是当前运动阶段的WebGL第一帧时,确定第二基准空间坐标点为WebGL前一帧运动后的空间坐标点,WebGL前一帧是WebGL当前帧的前一WebGL帧;
根据第一基准时间点确定当前运动阶段的WebGL当前帧的第二基准时间点,包括:
当WebGL当前帧是当前运动阶段的WebGL第一帧时,确定第二基准时间点为第一基准时间点;
当WebGL当前帧不是当前运动阶段的WebGL第一帧时,确定第二基准时间点为WebGL前一帧运动后的时间点。
在一种可能的实现方式中,处理模块在基于第一运动时长确定当前运动阶段是否结束时,用于:
确定当前运动阶段的WebGL最后一帧运动后的时间点和WebGL第一帧的基准时间点之间的时间差值;
将第一运动时长与时间差值进行比较,若判定时间差值等于第一运动时长,或者判定第一运动时长与时间差值之间的差值小于一个WebGL帧的运动所需的时间,确定当前运动阶段结束,否则确定当前运动阶段未结束。
在一种可能的实现方式中,运动模式包括以下至少一种:
线性运动模式;埃尔米特Hermite运动模式;拉格朗日Lagrange运动模式。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,处理器执行计算机程序以实现上述的时空轨迹模拟方法。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,计算机程序被处理器执行时实现上述的时空轨迹模拟方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,计算机程序被处理器执行时实现上述的时空轨迹模拟方法。
本申请实施例提供的技术方案带来的有益效果是:通过预先构建孪生体坐标系,不仅使得在孪生体运动过程中可以直接以孪生体自身的坐标系为基准进行时空轨迹模拟,从而无需从世界坐标系中取值做空间运动,而且,使得后续在孪生体运动过程中逐帧计算并更新基准时间点与基准空间坐标时,可以直接将上一帧的运算结果作为参数传入下一帧运算,从而实现时空连续性的时空轨迹模拟;通过预先设定PAA运动序列表和预先构建运动模式库,不仅实现了孪生体的各个运动阶段的解耦、孪生体在每个运动阶段的运动参数与运动模式库的解耦,从而符合对现实世界物体运动的真实模拟,而且使得在WebGL中根据运动函数和运动参数,可以动态计算孪生体运动过程的空间坐标点,从而极大减少了空间坐标数据的存储量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种时空轨迹模拟方法的流程示意图;
图2为本申请实施例提供的孪生体时空轨迹模拟的过程示意图;
图3为本申请实施例提供的一种时空轨迹模拟装置的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”指示实现为“A”,或者实现为“A”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
先对本申请涉及的几个名词进行介绍和解释:
WebGL(Web Graphics Library,web图形库)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助***显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等。
数字孪生(Digital Twin,DT):也被翻译为数字双生,数字双胞胎,数字镜像,或者数字化映射,是在新一代信息技术和制造技术驱动下,充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程,具有超逼真、多***融合、高精度的特点,可实现监控、预测、数据挖掘等功能。数字孪生作为物理***的一个数字副本,能够模拟运行***的整个生命周期并与物理孪生进行同步的映射,并实时的将物理实体和数字实体的相关数据进行交互,从而支撑分析、预测、决策等仿真相关应用。数字孪生为符合交通问题的分析和解决提供了新的思路。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的时空轨迹模拟方法的流程示意图,如图1所示,该方法包括:步骤S110,确定孪生体的基准空间坐标点和基准时间点,基准空间坐标点为预先构建的孪生体坐标系的原点,基准时间点为N*N的时间矩阵,N为大于1的整数;步骤S120,基于WebGL,根据基准空间坐标点、基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟孪生体经过每个运动阶段的时空轨迹,其中,运动信息包括运动时长、运动模式和运动参数。
本申请实施例实现的前提是孪生体是对现实世界物体的模拟,其运动与物体属性是相关的,而非无序运动。
在模拟孪生体的时空轨迹之前,需要先在WebGL中构建三维孪生体的基本面,主要包括的形状、外观。其中,可以通过将孪生体的顶点数组Vertex Array(即顶点数据)传入WebGL顶点缓冲区,来构建孪生体的形状,该顶点数组是孪生体三角面的坐标集合;可以通过纹理Texture读取孪生体的材质,再将材质传入WebGL颜色缓冲区,来构建形成孪生体的外观。
在WebGL中构建三维孪生体的基本面后,由于WebGL构建的三维世界中,坐标系是整个世界的空间直角坐标系,坐标原点位于世界中心点,所以需要不断地从世界坐标系中取值做孪生体的时空轨迹模拟,然而,每次都从世界坐标系中取值做孪生体的时空轨迹模拟,导致计算过程比较繁杂。因此,为了便于后续对孪生体的时空轨迹进行实时模拟,可以预先基于世界坐标系构建孪生体自身的孪生体坐标系,使得孪生体在自身的孪生体坐标系下进行时空轨迹模拟。
在基于孪生体自身的孪生体坐标系进行孪生体的时空轨迹模拟的过程中,需要首先确定孪生体的基准空间坐标点和基准时间点,其中,该基准空间坐标点是孪生体运动起点的空间坐标位置,其可以是预先构建的孪生体坐标系的原点(0,0,0,0);该基准时间点是N*N的时间矩阵,N为根据需要设定的大于1的整数,例如N为2、3、4等等,其中,本申请实施例以N的取值是4为例进行具体介绍。
需要说明的是,在确定孪生体的基准时间点之前,可以根据需要预先构建孪生体的基准时间点的时间矩阵(记作base_Time),以此存储孪生体运动起点的时间数据,即将孪生体的基准时间点的时间矩阵作为孪生体的基准时间点。其中,该时间矩阵可以是4*4的矩阵形式,比如可以为:
其中,A11至A41代表年份,A12至A42代表月与日,A13至A43代表时分,A14至A44代表秒与毫秒数,通过该矩阵可以实现“年—毫秒”时间串的存储,并在孪生体时空轨迹模拟中实现毫秒级精度。
在进行孪生体的时空轨迹模拟之前,可以先根据孪生体的场景需求,预先设定该孪生体经过的各个运动阶段、经过各个运动阶段的先后顺序、各个运动阶段各自对应的运动时长、运动模式和运动参数等等。其中,上述各个运动阶段可以只是1个运动阶段,也可以是2个运动阶段,还可以是3个或4个或更多个运动阶段,本申请实施例不对其作限制;各个运动阶段的运动时长可以相同,也可以不同,本申请实施例不对其作限制。
在实际应用中,可以通过一个PAA(piecewise aggregate approximation,分段聚合近似)运动序列表存储孪生体经过的各个运动阶段、经过各个运动阶段的先后顺序、各个运动阶段各自对应的运动时长、运动模式和运动参数等,即通过PAA运动序列表构建孪生体运动全生命周期的运动序列表。该PAA运动序列表可以如表1所示:
表1 PAA运动序列表
各个运动阶段 | 运动时长 | 运动模式 | 运动参数 |
运动阶段1 | 运动时长1 | 运动模式1 | 运动参数1 |
运动阶段2 | 运动时长2 | 运动模式2 | 运动参数2 |
运动阶段3 | 运动时长3 | 运动模式3 | 运动参数3 |
上述表1中包括3个运动阶段,即根据孪生体的场景需求,孪生体经过3个运动阶段,且该3个运动阶段的先后顺序是先经过运动阶段1、再经过运动阶段2、最后经过运动阶段3;运动阶段1的运动时长是运动时长1、运动阶段2的运动时长是运动时长2、运动阶段3的运动时长是运动时长3;运动阶段1的运动模式是运动模式1、运动阶段2的运动模式是运动模式2、运动阶段3的运动模式是运动模式3;运动阶段1的运动参数是运动参数1、运动阶段2的运动参数是运动参数2、运动阶段3的运动参数是运动参数3。
需要说明的是,当孪生体经过的运动阶段的数量大于1时,比如孪生体经过的运动阶段为2个或3个或更多个时,通常该多个运动阶段各自对应的运动模式是互不相同的,但也不排除该多个运动阶段中的某2个或某几个运动阶段是相同的运动模式的情况。另外,通常相同的运动模式对应相同的运动参数,不同的运动模式对应不同的运动参数。
在进行孪生体的时空轨迹模拟之前,可以根据需要预先构建孪生体的运动模式库,即将孪生体的运动模式独立建库,该运动模式库包括各个运动模式及各个运动模式各自对应的运动函数。其中,该运动模式库用于在孪生体的运动过程中,根据孪生体的运动模式选择相应的运动函数;该运动模式库包括的运动模式可以只是1个,也可以是2个,还可以是3个或4个或更多个,本申请实施例不对其作限制。需要注意的是,运动模式库中包括的运动模式至少要覆盖PAA运动序列表中的各个运动阶段各自对应的运动模式。
在进行孪生体的时空轨迹模拟之前,可以预先设定运动时间更新函数,用于根据孪生体的基准时间点,实时更新孪生体每经过一次运动后的时间点,以便孪生体在下一次运动时能够以该时间点作为基准时间点,从而实现孪生体的时空轨迹模拟的时间连续性。
在一个示例中,预先设定的运动时间更新函数可以为update_Time=last_Time+Δt的形式,其中,update_Time用于记录孪生体运动过程中的时间属性,相当于孪生体的时间参数,同样采用N*N的时间矩阵形式,比如采用4*4的时间矩阵形式;Δt代表WebGL每一帧运算所需的时间差矩阵,该时间差矩阵同样是N*N的时间矩阵形式,比如采用4*4的时间矩阵形式;last_Time是WebGL每一帧更新前,孪生体的时间属性,当其是孪生体的第一运动阶段的WebGL第一帧时,last_Time的取值为上述的base_Time(基准时间点)。换言之,update_Time是基于基准时间点(base_Time)进行逐帧累加计算得到的。
本申请实施例,通过预先构建孪生体坐标系,不仅使得在孪生体运动过程中可以直接以孪生体自身的坐标系为基准进行时空轨迹模拟,从而无需从世界坐标系中取值做空间运动,而且,使得后续在孪生体运动过程中逐帧计算并更新基准时间点与基准空间坐标时,可以直接将上一帧的运算结果作为参数传入下一帧运算,从而实现时空连续性的时空轨迹模拟;通过预先设定PAA运动序列表和预先构建运动模式库,不仅实现了孪生体的各个运动阶段的解耦、孪生体在每个运动阶段的运动参数与运动模式库的解耦,从而符合对现实世界物体运动的真实模拟,而且使得在WebGL中根据运动函数和运动参数,可以动态计算孪生体运动过程的空间坐标点,从而极大减少了空间坐标数据的存储量。
在本申请实施例的一种可能的实现方式中,确定孪生体的基准空间坐标点的处理过程,可以为:首先,基于WebGL三维世界坐标系和孪生体的顶点坐标数据,确定孪生体的坐标控制点;接着,根据透视投影矩阵和孪生体的坐标控制点,确定坐标系转换矩阵;接着,根据坐标系转换矩阵和WebGL三维世界坐标系,构建孪生体的孪生体坐标系,并确定孪生体坐标系的原点为孪生体的基准空间坐标点。
由于WebGL构建的三维世界中,坐标系是整个世界的空间直角坐标系,坐标原点位于世界中心点,所以在构建孪生体的孪生体坐标系的过程中,可以根据孪生体的顶点坐标数据,构建孪生体的孪生体坐标系的坐标系转换矩阵,来实现世界坐标系与孪生体坐标系的转换,便于后续基于孪生体自身的孪生体坐标系进行时空轨迹模拟。
在构建孪生体坐标系的过程中,可以首先基于WebGL三维世界坐标系和孪生体的顶点坐标数据,确定孪生体的坐标控制点,再根据透视投影矩阵和孪生体的坐标控制点,确定坐标系转换矩阵,再根据坐标系转换矩阵,将WebGL三维世界坐标系转换为孪生体坐标系。
在基于WebGL三维世界坐标系和孪生体的顶点坐标数据,确定孪生体的坐标控制点的过程中,可以执行如下处理:首先,基于WebGL三维世界坐标系,根据孪生体的顶点坐标数据,构建孪生体的球体包围盒;接着,获取球体包围盒的中心点并将其确定为孪生体的中心点;接着,为孪生体的中心点增加取值为预定数值的第四维数据,并将增加第四维数据后的孪生体的中心点确定为坐标控制点。
在基于WebGL三维世界坐标系,根据孪生体的顶点坐标数据构建孪生体的球体包围盒之后,可以获取球体包围盒的中心点作为孪生体的中心点,并将该中心点作为孪生体运动的中心点,同时为该中心点增加第四维并设定其取值为预定数值(记作R),从而形成四维空间向量(Px,Py,Pz,R),即得到增加第四维数据后的孪生体的中心点,也就是说,四维空间向量(Px,Py,Pz,R)即为孪生体的坐标控制点。其中,Px、Py、Pz分别代表孪生体在WebGL世界坐标系中的x轴、y轴、z轴的坐标值;该预定数值R可以为1、2、3等数值,本申请实施例不对其作限制。在一个示例中,该预定数值R为1.0,此时四维空间向量为(Px,Py,Pz,1.0)。
在得到孪生体的坐标控制点后,可以根据透视投影矩阵和孪生体的坐标控制点,确定坐标系转换矩阵,该坐标系转换矩阵可以是4*4的矩阵。在一个示例中,坐标系转换矩阵可以根据如下方式得到:
其中,space_Matrix代表坐标系转换矩阵,n为WebGL世界的Z轴方向近距离面值,f为Z轴方向远距离面值,r为X轴方向正距离面值,t为Y轴方向距离面。
在得到坐标系转换矩阵后,可以根据坐标系转换矩阵和WebGL三维世界坐标系,构建孪生体的孪生体坐标系。在构建孪生体的孪生体坐标系后,孪生体运动的基准空间坐标点变为孪生体坐标系的原点(0,0,0,0),即确定孪生体坐标系的原点为孪生体的基准空间坐标点。后续基于该基准空间坐标点进行孪生体的第一个运动阶段的WebGL第一帧运算,每一WebGL帧更新前,孪生体在自身的孪生体坐标系下的坐标值(即空间坐标点)可以记为last_Coord,经过一个WebGL帧的运算后,更新后的坐标值(即空间坐标点)可以记为update_Coord;对于第一个运动阶段的WebGL第一帧来说,last_Coord即为上述的基准空间坐标点(0,0,0,0)。
在本申请实施例的一种可能的实现方式中,运动模式可以是线性运动模式、埃尔米特Hermite运动模式或拉格朗日Lagrange运动模式中的至少一种。
孪生体的运动模式可以是线性运动模式,也可以是埃尔米特Hermite运动模式,还可以是拉格朗日Lagrange运动模式,当然也可以除了上述三种运动模式之外的其他运动模式,在此不再一一列举。
在一个示例中,假如孪生体的PAA运动序列表包括3个运动阶段,在一种情况下,第一个运动阶段(即运动阶段1)可以是线性运动模式,第二个运动阶段(即运动阶段2)可以是埃尔米特Hermite运动模式,第三个运动阶段(即运动阶段3)可以是拉格朗日Lagrange运动模式;在另一种情况下,第一个运动阶段(即运动阶段1)可以是埃尔米特Hermite运动模式,第二个运动阶段(即运动阶段2)可以是线性运动模式,第三个运动阶段(即运动阶段3)可以是拉格朗日Lagrange运动模式;在再一种情况下,第一个运动阶段(即运动阶段1)可以是拉格朗日Lagrange运动模式,第二个运动阶段(即运动阶段2)可以是线性运动模式,第三个运动阶段(即运动阶段3)可以是埃尔米特Hermite运动模式等等。
需要说明的是,上述示例仅为示例性说明,不应将其作为限制本申请实施例的其他可能情况的条件,除了上述示例列出的几种运动阶段的几种可能的运动模式外,还存在其他的运动阶段和其他可能的运动模式,在此不再一一赘述。
在一个示例中,PAA运动序列表可以是表2所示的情况:
表2 PAA运动序列表
各个运动阶段 | 运动时长 | 运动模式 | 运动参数 |
运动阶段1 | 运动时长1 | 线性运动模式 | 运动参数1 |
运动阶段2 | 运动时长2 | Hermite运动模式 | 运动参数2 |
运动阶段3 | 运动时长3 | Lagrange运动模式 | 运动参数3 |
其中,当孪生体为线性运动模式时,孪生体为匀速运动,孪生体的运动距离与运动时间之间是线性关系。该运动模式中传入单位时间的空间运动向量为(xΔ,yΔ,zΔ),该(xΔ,yΔ,zΔ)即为线性运动模式的运动参数,即表2中的运动参数1,用于计算孪生体的空间坐标点的更新值。线性运动模式对应的运动函数可以为:update_Coord=last_Coord+(xΔ,yΔ,zΔ,0),相当于,孪生体在线性运动模式下WebGL帧的运动函数为update_Coord=last_Coord+(xΔ,yΔ,zΔ,0)。
当孪生体为埃尔米特(Hermite)运动模式时,WebGL的Smoothstep是典型的Hermite插值模式,孪生体在运动起点和运动终点的中间值附近速度增加,最大单位时间的空间运动向量为该即为埃尔米特(Hermite)运动模式的运动参数,即表2中的运动参数2。根据孪生体时间参数update_Time,可以计算出插值参数r=(update_Time-base_Time)/duration,其中,duration为运动时长,用于计算孪生体空间坐标点的更新值。埃尔米特(Hermite)运动模式对应的运动函数可以为:相当于,孪生体在埃尔米特(Hermite)运动模式下WebGL帧的运动函数为
当孪生体为拉格朗日(Lagrange)运动模式时,孪生体在典型拉格朗日运动模式下呈现加速运动。在该运动模式下,传入xyz三轴下的偏导函数分别为fn(x,t)、fn(y,t)、fn(z,t),该fn(x,t)、fn(y,t)、fn(z,t)即为拉格朗日(Lagrange)运动模式的运动参数,即表2中的运动参数3,用于计算孪生体的空间坐标点的更新值。拉格朗日(Lagrange)运动模式对应的运动函数(相当于孪生体在拉格朗日(Lagrange)运动模式下WebGL帧的运动函数)可以为:
表2中的各个运动阶段的运动时长可以是根据需要设定的,比如运动阶段1的运动时长1可以是3秒、5秒、10秒、20秒等等,又比如运动阶段2的运动时长1可以是3秒、6秒、10秒、30秒等等,再比如运动阶段3的运动时长1可以是5秒、10秒、15秒等等。当然,各个运动阶段的运动时长还可以是其它时长,本申请实施例不对其作限制。在一个示例中,运动时长1可以是5秒、运动时长2可以是10秒、运动时长3可以是15秒。
在一种可能的实现方式中,基于WebGL,根据基准空间坐标点、基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟孪生体经过每个运动阶段的时空轨迹,包括:
步骤A:基于PAA运动序列表,确定孪生体的当前运动阶段和当前运动阶段对应的第一运动时长、第一运动模式和第一运动参数;
步骤B:根据运动模式库,确定第一运动模式对应的第一运动函数;
步骤C:基于WebGL,根据基准空间坐标点确定当前运动阶段的第一基准空间坐标点和根据基准时间点确定当前运动阶段的第一基准时间点;
步骤D:基于WebGL,根据第一基准空间坐标点、第一基准时间点、预先设定的运动时间更新函数、第一运动时长、第一运动参数和第一运动函数,模拟孪生体经过当前运动阶段的时空轨迹;
当基于第一运动时长确定当前运动阶段结束时,将当前运动阶段更新为当前运动阶段的下一运动阶段,并重复步骤A至步骤D,直到完成孪生体经过PAA运动序列表包括的每个运动阶段的时空轨迹模拟。
需要说明的是,上述的步骤A、步骤B及步骤C是为了便于区别各个处理过程和方便后续循环过程的描述,而特意书写的,类似于一个别名,并不代表执行的先后顺序。比如,可以先执行步骤A、再执行步骤B、最后执行步骤C,也可以先执行步骤B、再执行步骤A、最后执行步骤C,还可以先执行步骤C、再执行步骤B、最后执行步骤A,当然还可以是其他可能的执行顺序,在此不再一一赘述。
下面以先执行步骤A、再执行步骤B、最后执行步骤C的顺序为例,进行具体说明:
在一个示例中,假如孪生体根据需求采用表2所示的PAA运动序列表,即孪生体的第一个运动阶段是运动阶段1、第二个运动阶段是运动阶段2、第三个运动阶段是运动阶段3;并且,运动阶段1对应的运动模式是线性运动模式,运动阶段2对应的运动模式是Hermite运动模式,运动阶段3对应的运动模式是Lagrange运动模式;同时,运动时长1是5秒、运动时长2是10秒、运动时长3是15秒,则:
步骤A,基于表2所示的PAA运动序列表,确定孪生体的当前运动阶段和当前运动阶段对应的第一运动时长、第一运动模式和第一运动参数:(1)若确定孪生体的当前运动阶段是运动阶段1,则当前运动阶段对应的第一运动时长(即运动时长1)是5秒;(2)若确定孪生体的当前运动阶段是运动阶段2,则当前运动阶段对应的第一运动时长(即运动时长2)是10秒;(3)若确定孪生体的当前运动阶段是运动阶段3,则当前运动阶段对应的第一运动时长(即运动时长3)是15秒。
步骤B,根据运动模式库,确定第一运动模式对应的第一运动函数:(1)由于运动阶段1对应的运动模式是线性运动模式,所以若确定当前运动阶段是运动阶段1,则可以确定当前运动阶段对应的第一运动模式所对应的第一运动函数为update_Coord=last_Coord+(xΔ,yΔ,zΔ,0);(2)由于运动阶段2对应的运动模式是Hermite运动模式,所以若确定当前运动阶段是运动阶段2,则可以确定当前运动阶段对应的第一运动模式所对应的第一运动函数为 (3)由于运动阶段3对应的运动模式是Lagrange运动模式,所以若确定当前运动阶段是运动阶段3,则可以确定当前运动阶段对应的第一运动模式所对应的第一运动函数为:
步骤C,基于WebGL,根据基准空间坐标点确定当前运动阶段的第一基准空间坐标点和根据基准时间点确定当前运动阶段的第一基准时间点。当前运动阶段可能是孪生体运动过程中的首个运动阶段,也可能是孪生体运动过程中除了首个运动阶段外的其他运动阶段,例如第二个运动阶段、第三个运动阶段等。
在基于WebGL,根据基准空间坐标点确定当前运动阶段的第一基准空间坐标点的过程中,若当前运动阶段是PAA运动序列表(如表2所示)中的首个运动阶段(如表2中的运动阶段1),可以确定当前运动阶段的第一基准空间坐标点即为基准空间坐标点(0,0,0,0);若当前运动阶段不是PAA运动序列表(如表2所示)中的首个运动阶段,比如当前运动阶段是PAA运动序列表(如表2所示)中的第二个运动阶段或第三个运动阶段,可以确定当前运动阶段的第一基准空间坐标点为当前运动阶段的前一运动阶段的WebGL最后一帧运动后的空间坐标点,其中,前一运动阶段的WebGL最后一帧运动后的空间坐标点是基于前一运动阶段的运动模式对应的运动函数、根据前一运动阶段的运动时长和运动参数计算得到的。
基于WebGL,根据基准时间点确定当前运动阶段的第一基准时间点的过程中,若当前运动阶段是PAA运动序列表(如表2所示)中的首个运动阶段(如表2中的运动阶段1),可以确定当前运动阶段的第一基准时间点为基准时间点(即base_Time);若当前运动阶段不是PAA运动序列表(如表2所示)中的首个运动阶段,比如当前运动阶段是PAA运动序列表(如表2所示)中的第二个运动阶段或第三个运动阶段,可以确定当前运动阶段的第一基准时间点为当前运动阶段的前一运动阶段的WebGL最后一帧运动后的时间点,其中,前一运动阶段的WebGL最后一帧运动后的时间点是基于预先设定的运动时间更新函数、根据前一运动阶段的基准时间点和运动时长计算得到的。
步骤D,基于WebGL,根据第一基准空间坐标点、第一基准时间点、预先设定的运动时间更新函数、第一运动时长、第一运动参数和第一运动函数,模拟孪生体经过当前运动阶段的时空轨迹。
执行完上述步骤A至步骤D之后,检测当前运动阶段是否结束,在检测过程中,可以基于当前运动阶段的运动时长来确定当前运动阶段是否结束。假如当前运动阶段是运动阶段1、运动时长是5秒,则:可以基于运动阶段1的运动时长(5秒),来确定当前运动阶段是否结束。以运动时长为5秒的运动阶段1为例,在确定当前运动阶段1是否结束的过程中,可以执行如下处理:首先,确定当前运动阶段(即运动阶段1)的WebGL最后一帧运动后的时间点(即WebGL最后一帧更新后的时间点update_Time)和WebGL第一帧的基准时间点(base_Time)之间的时间差值;然后,将所第一运动时长与时间差值进行比较,在一种可行的方式中,若判定时间差值等于第一运动时长,说明确定当前运动阶段结束,否则说明当前运动阶段未结束,在另一种可行的方式中,若判定第一运动时长与时间差值之间的差值小于一个WebGL帧的运动所需的时间,即两者之间的差值不足以孪生体的一个WebGL帧的运算所需的时间,此时也可以确定当前运动阶段结束,否则确定当前运动阶段未结束。
当确定当前运动阶段结束时,将当前运动阶段更新为当前运动阶段的下一运动阶段,若当前运动阶段是运动阶段1,则在运动阶段1结束时,将运动阶段2(即运动阶段1的下一个运动阶段)更新为当前运动阶段,并且,重复执行上述的步骤A至步骤D,依次往复循环,直到完成孪生体经过PAA运动序列表(如表2)包括的每个运动阶段的时空轨迹模拟。
在本申请实施例的一种可能的实现方式中,当前运动阶段包括多个WebGL帧,其中,包括的WebGL帧的数量与当前运动阶段的运动时长相关,比如,当当前运动阶段是表2中的运动阶段1、且运动时长是5秒时,根据该运动时长确定当前运动阶段包括5个WebGL帧,又比如,当前运动阶段是表2中的运动阶段2、且运动时长是10秒时,根据该运动时长确定当前运动阶段包括10个WebGL帧,再比如,当前运动阶段是表2中的运动阶段3、且运动时长是15秒时,根据该运动时长确定当前运动阶段包括15个WebGL帧等等。
对于每一个运动阶段,在基于WebGL,根据第一基准空间坐标点、第一基准时间点、预先设定的运动时间更新函数、第一运动时长、第一运动参数和第一运动函数,模拟孪生体经过当前运动阶段的时空轨迹时,可以执行如下处理:步骤E,根据第一基准空间坐标点确定当前运动阶段的WebGL当前帧的第二基准空间坐标点,以及根据第一基准时间点确定当前运动阶段的WebGL当前帧的第二基准时间点;步骤F,基于第一运动函数,根据第二基准空间坐标点和第一运动参数,确定WebGL当前帧运动后的空间坐标点,并将WebGL当前帧运动后的空间坐标点确定为WebGL下一帧的第二基准空间坐标点,WebGL下一帧是WebGL当前帧的下一WebGL帧;步骤G,基于预先设定的运动时间更新函数,根据第二基准时间点和WebGL当前帧的运动所需的时间,确定WebGL当前帧运动后的时间点,并将WebGL当前帧运动后的时间点确定为WebGL下一帧的第二基准时间点;当WebGL当前帧运动结束时,将WebGL当前帧更新为WebGL当前帧的下一WebGL帧,并重复步骤E至步骤G,直到完成当前运动阶段包括的每个WebGL帧的时空轨迹模拟。
需要说明的是,上述的步骤E、步骤F是为了便于区别各个处理过程和方便后续循环过程的描述,而特意书写的,类似于一个别名,并不代表执行的先后顺序。比如,可以先执行步骤E、再执行步骤F,也可以先执行步骤F、再执行步骤E。
在根据第一基准空间坐标点确定当前运动阶段的WebGL当前帧的第二基准空间坐标点的过程中,当WebGL当前帧是当前运动阶段的WebGL第一帧时,确定第二基准空间坐标点为第一基准空间坐标点;当WebGL当前帧不是当前运动阶段的WebGL第一帧时,确定第二基准空间坐标点为WebGL前一帧运动后的空间坐标点,WebGL前一帧是WebGL当前帧的前一WebGL帧。
在根据第一基准时间点确定当前运动阶段的WebGL当前帧的第二基准时间点的过程中,当WebGL当前帧是当前运动阶段的WebGL第一帧时,确定第二基准时间点为第一基准时间点;当WebGL当前帧不是当前运动阶段的WebGL第一帧时,确定第二基准时间点为WebGL前一帧运动后的时间点。
下面结合图2,通过具体示例,对本申请实施例的孪生体在各个运动阶段的时空轨迹模拟进行详细介绍。其中,在介绍孪生体在各个运动阶段的时空轨迹模拟之前,需要预先构建孪生体坐标系、孪生体运动模式库和PAA运动序列表,具体可以为:
(1)构建孪生体坐标系,包括:孪生体顶点数据(即获取孪生体顶点数据)、孪生体包围盒(即根据孪生体顶点数据生成孪生体包围盒)、坐标***转换矩阵(即根据孪生体包围盒构建坐标系转换矩阵,最终根据坐标系转换矩阵得到孪生体坐标系)。具体的构建孪生体坐标***的过程如前文所述,在此不再赘述。
(2)孪生体运动模式库,其中,孪生体运动模式库中包括但不限于线性运动模式、埃尔米特Hermite运动模式和拉格朗日Lagrange运动模式,如前文所述。
(3)孪生体PAA运动序列,即根据当前的运动需求,构建PAA运动序列表,PAA运动序列表包括孪生体经过的各个运动阶段、经过各个运动阶段的先后顺序、各个运动阶段各自对应的运动时长、运动模式和运动参数等,如前文所述。其中,本示例中的PAA运动序列表可以是如表2所示的PAA运动序列表。
此外,图2中的独立的时间参数用于控制孪生体的各个运动阶段的跳转,比如确定是否结束运动阶段1而进入运动阶段2,又比如确定是否结束运动阶段2而进入运动阶段3等。其中,独立的时间参数类似于前文描述的时间差值(即当前运动阶段的WebGL最后一帧运动后的时间点和当前运动阶段的WebGL第一帧的基准时间点之间的时间差值)。
在本示例中,假如确定孪生体的当前运动阶段为表2中的运动阶段1,且运动阶段1的运动模式是线性运动模式、运动阶段1的运动时长是5秒、运动参数是(xΔ,yΔ,zΔ);接着,可以根据运动模式库可以确定运动阶段1的线性运动模式的运动函数为update_Coord=last_Coord+(xΔ,yΔ,zΔ,0);接着,因为孪生体的当前运动阶段是表2中的运动阶段1,该运动阶段1是孪生体的首个运动阶段,所以当前运动阶段的第一基准空间坐标点即为前文所说的基准空间坐标点(0,0,0,0)、当前运动阶段的第一基准时间点即为前文所说的基准时间点base_Time。
因为对孪生体在当前运动阶段的时空轨迹模拟是通过模拟孪生体在当前运动阶段包括的多个WebGL帧的时空轨迹来实现的,而且依次是从WebGL第一帧到WebGL最后一帧来完成孪生体在当前运动阶段的时空轨迹模拟的,所以孪生体首先进入WebGL第一帧运动。基于此,对于孪生体在当前运动阶段的WebGL第一帧(即当前运动阶段的WebGL当前帧),可以确定WebGL第一帧的第二基准空间坐标点即为当前运动阶段的第一基准空间坐标点(0,0,0,0)、WebGL第一帧的第二基准时间点即为当前运动阶段的第一基准时间点base_Time。当孪生体完成当前运动阶段的WebGL第一帧的运动后,可以根据线性运动模式的运动函数,确定WebGL第一帧运动后的空间坐标点为update_Coord_1_1=(0,0,0,0)+(xΔ,yΔ,zΔ,0),并且可以根据预先设定的运动时间更新函数,确定WebGL第一帧运动后的时间点为update_Time_1_1=base_Time+Δt,Δt代表WebGL第一帧运算所需的时间差矩阵;随后,将update_Coord_1_1确定为WebGL下一帧(即WebGL第二帧)的第二基准空间坐标点,同时将update_Time_1_1确定为WebGL下一帧(即WebGL第二帧)的第二基准时间点。
当孪生体进入当前运动阶段的WebGL第二帧运动时,可以确定WebGL第二帧运动后的空间坐标点为update_Coord_1_2=update_Coord_1_1+(xΔ,yΔ,zΔ,0),并且可以确定WebGL第二帧运动后的时间点为update_Time_1_2=update_Time_1_1+Δt,Δt代表WebGL第二帧运算所需的时间差矩阵。
以此类推,直至孪生体完成当前运动阶段的WebGL最后一帧运动,即逐帧更新空间坐标点和时间点。假如根据当前运动阶段的运动时长(比如5秒)确定当前运动阶段包括5个WebGL帧,则当前运动阶段的WebGL最后一帧运动后的空间坐标点为update_Coord_1_5=update_Coord_1_4+(xΔ,yΔ,zΔ,0)、当前运动阶段的WebGL最后一帧运动后的时间点为update_Time_1_5=update_Time_1_4+Δt,Δt代表WebGL最后一帧运算所需的时间差矩阵。
完成孪生体当前运动阶段(即运动阶段1)的时空轨迹模拟后,进行孪生体在运动阶段2的时空轨迹模拟,在进行运动阶段2的时空轨迹模拟时,该运动阶段2即为孪生体的当前运动阶段。此时,当前运动阶段的基准空间坐标点为当前运动阶段的前一运动阶段(即运动阶段1)的WebGL最后一帧运动后的空间坐标点update_Coord_1_5,当前运动阶段的基准时间点为当前运动阶段的前一运动阶段(即运动阶段1)的WebGL最后一帧运动后的时间点update_Time_1_5,也即当前运动阶段(运动阶段2)的WebGL第一帧的第二基准空间坐标点为update_Coord_1_5、当前运动阶段(运动阶段2)的WebGL第一帧的第二基准时间点为update_Time_1_5。
当孪生体完成当前运动阶段(即运动阶段2)的WebGL第一帧的运动后,可以根据线性运动模式的运动函数,确定WebGL第一帧运动后的空间坐标点为 并且可以根据预先设定的运动时间更新函数,确定WebGL第一帧运动后的时间点为update_Time_2_1=update_Time_1_5+Δt,Δt代表WebGL第一帧运算所需的时间差矩阵;随后,将update_Coord_2_1确定为WebGL下一帧(即WebGL第二帧)的第二基准空间坐标点,同时将update_Time_2_1确定为WebGL下一帧(即WebGL第二帧)的第二基准时间点。
当孪生体进入当前运动阶段(即运动阶段2)的WebGL第二帧运动时,可以确定WebGL第二帧运动后的空间坐标点为 并且可以确定WebGL第二帧运动后的时间点为update_Time_2_2=update_Time_2_1+Δt,Δt代表WebGL第二帧运算所需的时间差矩阵。
以此类推,直至孪生体完成当前运动阶段(即运动阶段2)的WebGL最后一帧运动,即逐帧更新空间坐标点和时间点。假如根据当前运动阶段的运动时长(比如10秒)确定当前运动阶段包括10个WebGL帧,则当前运动阶段的WebGL最后一帧运动后的空间坐标点为当前运动阶段的WebGL最后一帧运动后的时间点为update_Time_2_10=update_Time_1_9+Δt,Δt代表WebGL最后一帧运算所需的时间差矩阵。
完成孪生体当前运动阶段(即运动阶段2)的时空轨迹模拟后,进行孪生体在运动阶段3的时空轨迹模拟,在进行运动阶段3的时空轨迹模拟时,该运动阶段3即为孪生体的当前运动阶段。此时,当前运动阶段的基准空间坐标点为当前运动阶段的前一运动阶段(即运动阶段2)的WebGL最后一帧运动后的空间坐标点update_Coord_2_10,当前运动阶段的基准时间点为当前运动阶段的前一运动阶段(即运动阶段2)的WebGL最后一帧运动后的时间点update_Time_2_10,也即当前运动阶段(运动阶段3)的WebGL第一帧的第二基准空间坐标点为update_Coord_2_10、当前运动阶段(运动阶段3)的WebGL第一帧的第二基准时间点为update_Time_2_10。
其中,孪生体在运动阶段3的时空轨迹模拟与上述的孪生体在运动阶段1和运动阶段2的时空轨迹模拟类似,在此不再赘述。完成孪生体在运动阶段1、运动阶段2及运动阶段3的时空轨迹模拟后,即可得到孪生全生命周期的时空轨迹模拟。
本申请实施例,通过构建孪生体自身坐标系,在孪生体运动过程中逐帧计算并更新时间属性与空间坐标,将上一帧运算成果作为参数传入下一帧运算,从而实现对时空连续性的模拟;通过基于PAA序列方式,在WebGL中基于运动函数及参数,动态计算孪生体运动过程的空间坐标,极大的减少了空间坐标数据的存储量;通过建立孪生体运动模式库,将运动模式与孪生体数据进行解耦,与真实世界是相符合的。
本申请实施例提供了一种时空轨迹模拟装置,如图4所示,该时空轨迹模拟装置300可以包括:确定模块301以及处理模块302,其中,
根据本申请实施例的另一个方面,提供了一种时空轨迹模拟装置,该装置包括:
确定模块301,用于确定孪生体的基准空间坐标点和基准时间点,基准空间坐标点为预先构建的孪生体坐标系的原点,基准时间点为N*N的时间矩阵,N为大于1的整数;
处理模块302,用于基于WebGL,根据基准空间坐标点、基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟孪生体经过每个运动阶段的时空轨迹,其中,运动信息包括运动时长、运动模式和运动参数。
在一种可能的实现方式中,确定模块在确定孪生体的基准空间坐标点时,用于:
基于WebGL三维世界坐标系和孪生体的顶点坐标数据,确定孪生体的坐标控制点;
根据透视投影矩阵和孪生体的坐标控制点,确定坐标系转换矩阵;
根据坐标系转换矩阵和WebGL三维世界坐标系,构建孪生体的孪生体坐标系,并确定孪生体坐标系的原点为孪生体的基准空间坐标点。
在一种可能的实现方式中,确定模块在基于WebGL三维世界坐标系和孪生体的顶点坐标数据,确定孪生体的坐标控制点时,用于:
基于WebGL三维世界坐标系,根据孪生体的顶点坐标数据,构建孪生体的球体包围盒;
获取球体包围盒的中心点并将其确定为孪生体的中心点;
为孪生体的中心点增加取值为预定数值的第四维数据,并将增加第四维数据后的孪生体的中心点确定为坐标控制点。
在一种可能的实现方式中,处理模块在基于WebGL,根据基准空间坐标点、基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟孪生体经过每个运动阶段的时空轨迹时,用于:
步骤A:基于PAA运动序列表,确定孪生体的当前运动阶段和当前运动阶段对应的第一运动时长、第一运动模式和第一运动参数;
步骤B:根据运动模式库,确定第一运动模式对应的第一运动函数;
步骤C:基于WebGL,根据基准空间坐标点确定当前运动阶段的第一基准空间坐标点和根据基准时间点确定当前运动阶段的第一基准时间点;
步骤D:基于WebGL,根据第一基准空间坐标点、第一基准时间点、预先设定的运动时间更新函数、第一运动时长、第一运动参数和第一运动函数,模拟孪生体经过当前运动阶段的时空轨迹;
当基于第一运动时长确定当前运动阶段结束时,将当前运动阶段更新为当前运动阶段的下一运动阶段,并重复步骤A至步骤D,直到完成孪生体经过PAA运动序列表包括的每个运动阶段的时空轨迹模拟。
在一种可能的实现方式中,处理模块在基于WebGL,根据基准空间坐标点确定当前运动阶段的第一基准空间坐标点时,用于:
当当前运动阶段是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准空间坐标点为基准空间坐标点;
当当前运动阶段不是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准空间坐标点为当前运动阶段的前一运动阶段的WebGL最后一帧运动后的空间坐标点,其中,前一运动阶段的WebGL最后一帧运动后的空间坐标点是基于前一运动阶段的运动模式对应的运动函数,根据前一运动阶段的运动时长和运动参数计算得到的。
在一种可能的实现方式中,处理模块在基于WebGL,根据基准时间点确定当前运动阶段的第一基准时间点时,用于:
当当前运动阶段是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准时间点为基准时间点;
当当前运动阶段不是PAA运动序列表中的首个运动阶段时,确定当前运动阶段的第一基准时间点为当前运动阶段的前一运动阶段的WebGL最后一帧运动后的时间点,其中,前一运动阶段的WebGL最后一帧运动后的时间点是基于预先设定的运动时间更新函数,根据前一运动阶段的基准时间点和运动时长计算得到的。
在一种可能的实现方式中,处理模块在当前运动阶段包括多个WebGL帧;基于WebGL,根据第一基准空间坐标点、第一基准时间点、预先设定的运动时间更新函数、第一运动时长、第一运动参数和第一运动函数,模拟孪生体经过当前运动阶段的时空轨迹时,用于:
步骤E,根据第一基准空间坐标点确定当前运动阶段的WebGL当前帧的第二基准空间坐标点,以及根据第一基准时间点确定当前运动阶段的WebGL当前帧的第二基准时间点;
步骤F,基于第一运动函数,根据第二基准空间坐标点和第一运动参数,确定WebGL当前帧运动后的空间坐标点,并将WebGL当前帧运动后的空间坐标点确定为WebGL下一帧的第二基准空间坐标点,WebGL下一帧是WebGL当前帧的下一WebGL帧;
步骤G,基于预先设定的运动时间更新函数,根据第二基准时间点和WebGL当前帧的运动所需的时间,确定WebGL当前帧运动后的时间点,并将WebGL当前帧运动后的时间点确定为WebGL下一帧的第二基准时间点;
当WebGL当前帧运动结束时,将WebGL当前帧更新为WebGL当前帧的下一WebGL帧,并重复步骤E至步骤G,直到完成当前运动阶段包括的每个WebGL帧的时空轨迹模拟。
在一种可能的实现方式中,处理模块在根据第一基准空间坐标点确定当前运动阶段的WebGL当前帧的第二基准空间坐标点时,用于:
当WebGL当前帧是当前运动阶段的WebGL第一帧时,确定第二基准空间坐标点为第一基准空间坐标点;
当WebGL当前帧不是当前运动阶段的WebGL第一帧时,确定第二基准空间坐标点为WebGL前一帧运动后的空间坐标点,WebGL前一帧是WebGL当前帧的前一WebGL帧;
根据第一基准时间点确定当前运动阶段的WebGL当前帧的第二基准时间点,包括:
当WebGL当前帧是当前运动阶段的WebGL第一帧时,确定第二基准时间点为第一基准时间点;
当WebGL当前帧不是当前运动阶段的WebGL第一帧时,确定第二基准时间点为WebGL前一帧运动后的时间点。
在一种可能的实现方式中,处理模块在基于第一运动时长确定当前运动阶段是否结束时,用于:
确定当前运动阶段的WebGL最后一帧运动后的时间点和WebGL第一帧的基准时间点之间的时间差值;
将第一运动时长与时间差值进行比较,若判定时间差值等于第一运动时长,或者判定第一运动时长与时间差值之间的差值小于一个WebGL帧的运动所需的时间,确定当前运动阶段结束,否则确定当前运动阶段未结束。
在一种可能的实现方式中,运动模式包括以下至少一种:
线性运动模式;埃尔米特Hermite运动模式;拉格朗日Lagrange运动模式。
本申请实施例的时空轨迹模拟装置可执行本申请上述实施例所示的时空轨迹模拟方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现时空轨迹模拟的方法的步骤,与现有技术相比可实现:通过预先构建孪生体坐标系,不仅使得在孪生体运动过程中可以直接以孪生体自身的坐标系为基准进行时空轨迹模拟,从而无需从世界坐标系中取值做空间运动,而且,使得后续在孪生体运动过程中逐帧计算并更新基准时间点与基准空间坐标时,可以直接将上一帧的运算结果作为参数传入下一帧运算,从而实现时空连续性的时空轨迹模拟;通过预先设定PAA运动序列表和预先构建运动模式库,不仅实现了孪生体的各个运动阶段的解耦、孪生体在每个运动阶段的运动参数与运动模式库的解耦,从而符合对现实世界物体运动的真实模拟,而且使得在WebGL中根据运动函数和运动参数,可以动态计算孪生体运动过程的空间坐标点,从而极大减少了空间坐标数据的存储量。
在一个可选实施例中提供了一种电子设备,如图4所示,图4所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (14)
1.一种时空轨迹模拟方法,其特征在于,包括:
确定孪生体的基准空间坐标点和基准时间点,所述基准空间坐标点为预先构建的孪生体坐标系的原点,所述基准时间点为N*N的时间矩阵,N为大于1的整数;
基于WebGL,根据所述基准空间坐标点、所述基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟所述孪生体经过所述每个运动阶段的时空轨迹,其中,所述运动信息包括运动时长、运动模式和运动参数。
2.根据权利要求1所述的方法,其特征在于,所述确定孪生体的基准空间坐标点,包括:
基于WebGL三维世界坐标系和所述孪生体的顶点坐标数据,确定所述孪生体的坐标控制点;
根据透视投影矩阵和所述孪生体的坐标控制点,确定坐标系转换矩阵;
根据所述坐标系转换矩阵和所述WebGL三维世界坐标系,构建所述孪生体的孪生体坐标系,并确定所述孪生体坐标系的原点为所述孪生体的基准空间坐标点。
3.根据权利要求2所述的方法,其特征在于,所述基于WebGL三维世界坐标系和所述孪生体的顶点坐标数据,确定所述孪生体的坐标控制点,包括:
基于所述WebGL三维世界坐标系,根据所述孪生体的顶点坐标数据,构建所述孪生体的球体包围盒;
获取所述球体包围盒的中心点并将其确定为所述孪生体的中心点;
为所述孪生体的中心点增加取值为预定数值的第四维数据,并将增加第四维数据后的所述孪生体的中心点确定为所述坐标控制点。
4.根据权利要求1所述的方法,其特征在于,所述基于WebGL,根据所述基准空间坐标点、所述基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟所述孪生体经过所述每个运动阶段的时空轨迹,包括:
步骤A:基于所述PAA运动序列表,确定所述孪生体的当前运动阶段和所述当前运动阶段对应的第一运动时长、第一运动模式和第一运动参数;
步骤B:根据所述运动模式库,确定所述第一运动模式对应的第一运动函数;
步骤C:基于WebGL,根据所述基准空间坐标点确定所述当前运动阶段的第一基准空间坐标点和根据所述基准时间点确定所述当前运动阶段的第一基准时间点;
步骤D:基于WebGL,根据所述第一基准空间坐标点、所述第一基准时间点、所述预先设定的运动时间更新函数、所述第一运动时长、所述第一运动参数和所述第一运动函数,模拟所述孪生体经过所述当前运动阶段的时空轨迹;
当基于所述第一运动时长确定所述当前运动阶段结束时,将所述当前运动阶段更新为所述当前运动阶段的下一运动阶段,并重复所述步骤A至所述步骤D,直到完成所述孪生体经过所述PAA运动序列表包括的每个运动阶段的时空轨迹模拟。
5.根据权利要求4所述的方法,其特征在于,所述基于WebGL,根据所述基准空间坐标点确定所述当前运动阶段的第一基准空间坐标点,包括:
当所述当前运动阶段是所述PAA运动序列表中的首个运动阶段时,确定所述当前运动阶段的第一基准空间坐标点为所述基准空间坐标点;
当所述当前运动阶段不是所述PAA运动序列表中的首个运动阶段时,确定所述当前运动阶段的第一基准空间坐标点为所述当前运动阶段的前一运动阶段的WebGL最后一帧运动后的空间坐标点,其中,所述前一运动阶段的WebGL最后一帧运动后的空间坐标点是基于所述前一运动阶段的运动模式对应的运动函数,根据所述前一运动阶段的运动时长和运动参数计算得到的。
6.根据权利要求4所述的方法,其特征在于,所述基于WebGL,根据所述基准时间点确定所述当前运动阶段的第一基准时间点,包括:
当所述当前运动阶段是所述PAA运动序列表中的首个运动阶段时,确定所述当前运动阶段的第一基准时间点为所述基准时间点;
当所述当前运动阶段不是所述PAA运动序列表中的首个运动阶段时,确定所述当前运动阶段的第一基准时间点为所述当前运动阶段的前一运动阶段的WebGL最后一帧运动后的时间点,其中,所述前一运动阶段的WebGL最后一帧运动后的时间点是基于所述预先设定的运动时间更新函数,根据所述前一运动阶段的基准时间点和运动时长计算得到的。
7.根据权利要求4-5任一项所述的方法,其特征在于,所述当前运动阶段包括多个WebGL帧;所述基于WebGL,根据所述第一基准空间坐标点、所述第一基准时间点、所述预先设定的运动时间更新函数、所述第一运动时长、所述第一运动参数和所述第一运动函数,模拟所述孪生体经过所述当前运动阶段的时空轨迹,包括:
步骤E,根据所述第一基准空间坐标点确定所述当前运动阶段的WebGL当前帧的第二基准空间坐标点,以及根据所述第一基准时间点确定所述当前运动阶段的WebGL当前帧的第二基准时间点;
步骤F,基于所述第一运动函数,根据所述第二基准空间坐标点和所述第一运动参数,确定所述WebGL当前帧运动后的空间坐标点,并将所述WebGL当前帧运动后的空间坐标点确定为WebGL下一帧的第二基准空间坐标点,所述WebGL下一帧是所述WebGL当前帧的下一WebGL帧;
步骤G,基于所述预先设定的运动时间更新函数,根据所述第二基准时间点和所述WebGL当前帧的运动所需的时间,确定所述WebGL当前帧运动后的时间点,并将所述WebGL当前帧运动后的时间点确定为所述WebGL下一帧的第二基准时间点;
当所述WebGL当前帧运动结束时,将所述WebGL当前帧更新为所述WebGL当前帧的下一WebGL帧,并重复所述步骤E至所述步骤G,直到完成所述当前运动阶段包括的每个WebGL帧的时空轨迹模拟。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一基准空间坐标点确定所述当前运动阶段的WebGL当前帧的第二基准空间坐标点,包括:
当所述WebGL当前帧是所述当前运动阶段的WebGL第一帧时,确定所述第二基准空间坐标点为所述第一基准空间坐标点;
当所述WebGL当前帧不是所述当前运动阶段的WebGL第一帧时,确定所述第二基准空间坐标点为WebGL前一帧运动后的空间坐标点,所述WebGL前一帧是所述WebGL当前帧的前一WebGL帧;
所述根据所述第一基准时间点确定所述当前运动阶段的WebGL当前帧的第二基准时间点,包括:
当所述WebGL当前帧是所述当前运动阶段的WebGL第一帧时,确定所述第二基准时间点为所述第一基准时间点;
当所述WebGL当前帧不是所述当前运动阶段的WebGL第一帧时,确定所述第二基准时间点为所述WebGL前一帧运动后的时间点。
9.根据权利要求4-5任一项所述的方法,其特征在于,基于所述第一运动时长确定所述当前运动阶段是否结束,包括:
确定所述当前运动阶段的WebGL最后一帧运动后的时间点和所述WebGL第一帧的基准时间点之间的时间差值;
将所述第一运动时长与所述时间差值进行比较,若判定所述时间差值等于所述第一运动时长,或者判定所述第一运动时长与所述时间差值之间的差值小于一个WebGL帧的运动所需的时间,确定所述当前运动阶段结束,否则确定所述当前运动阶段未结束。
10.根据权利要求1-9任一项所述的方法,其特征在于,运动模式包括以下至少一种:
线性运动模式;埃尔米特Hermite运动模式;拉格朗日Lagrange运动模式。
11.一种时空轨迹模拟装置,其特征在于,包括:
确定模块,用于确定孪生体的基准空间坐标点和基准时间点,所述基准空间坐标点为预先构建的孪生体坐标系的原点,所述基准时间点为N*N的时间矩阵,N为大于1的整数;
处理模块,用于基于WebGL,根据所述基准空间坐标点、所述基准时间点、预先设定的分段聚合近似PAA运动序列表包括的每个运动阶段各自对应的运动信息、预先构建的运动模式库包括的每个运动模式各自对应的运动函数、以及预先设定的运动时间更新函数,模拟所述孪生体经过所述每个运动阶段的时空轨迹,其中,所述运动信息包括运动时长、运动模式和运动参数。
12.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-10任一项所述方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210107342.8A CN114627149A (zh) | 2022-01-28 | 2022-01-28 | 时空轨迹模拟方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210107342.8A CN114627149A (zh) | 2022-01-28 | 2022-01-28 | 时空轨迹模拟方法、装置、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114627149A true CN114627149A (zh) | 2022-06-14 |
Family
ID=81899101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210107342.8A Pending CN114627149A (zh) | 2022-01-28 | 2022-01-28 | 时空轨迹模拟方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114627149A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115339879A (zh) * | 2022-10-19 | 2022-11-15 | 昆明理工大学 | 一种基于机器视觉的长材小方坯智能输送跟踪方法及*** |
-
2022
- 2022-01-28 CN CN202210107342.8A patent/CN114627149A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115339879A (zh) * | 2022-10-19 | 2022-11-15 | 昆明理工大学 | 一种基于机器视觉的长材小方坯智能输送跟踪方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112933597B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
US6654020B2 (en) | Method of rendering motion blur image and apparatus therefor | |
US11704883B2 (en) | Methods and systems for reprojection in augmented-reality displays | |
Chen et al. | A survey on 3d gaussian splatting | |
US20230206565A1 (en) | Providing augmented reality in a web browser | |
Saito et al. | Appearance-based virtual view generation from multicamera videos captured in the 3-d room | |
CN110209864B (zh) | 三维立体模型测量改尺标注重新建模的网络平台*** | |
CN113827965B (zh) | 游戏场景中样条线的渲染方法、装置及设备 | |
US10909764B2 (en) | Providing augmented reality target images in a web browser | |
CN116977522A (zh) | 三维模型的渲染方法、装置、计算机设备和存储介质 | |
CN111179391A (zh) | 一种三维动画制作方法、***及存储介质 | |
CN112396657A (zh) | 一种基于神经网络的深度位姿估计方法、装置及终端设备 | |
CN114627149A (zh) | 时空轨迹模拟方法、装置、电子设备及计算机存储介质 | |
Mütsch et al. | From model-based to data-driven simulation: Challenges and trends in autonomous driving | |
CN114419099A (zh) | 捕捉待渲染虚拟对象的运动轨迹的方法 | |
CN116612223B (zh) | 数字孪生模拟空间的生成方法、装置、计算机设备和介质 | |
KR20130017258A (ko) | 다수의 평면을 가지는 모델 기반의 증강현실 구현장치 및 방법 | |
TW202312100A (zh) | 網格生成方法、電子設備及電腦可讀儲存介質 | |
CN110827303B (zh) | 一种虚拟场景的图像编辑方法及装置 | |
JPH10111934A (ja) | 3次元形状モデル作成方法及び媒体 | |
Wang et al. | Local and nonlocal flow-guided video inpainting | |
CN116109758B (zh) | 一种光源投影位置定位、场景渲染的方法及装置 | |
Kitahara et al. | Cinematized reality: Cinematographic camera controlling 3d free-viewpoint video | |
WO2024034449A1 (ja) | 情報処理装置、及び情報処理方法 | |
Shuvalova et al. | Interactive markerless augmented reality system based on visual SLAM algorithm |
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 |