本公开涉及计算机视觉技术,尤其是一种三维模型的视角转换方法和装置。
背景技术:
1、随着虚拟现实(vr)、增强现实(ar)等新兴技术的崛起,3d建模在科技产业和创意产业中的应用越发广泛。vr和ar都依赖于三维模型来构建沉浸式的虚拟环境,使得用户可以与虚拟物体和场景进行自然交互。三维模型作为三维计算机图形学的基本要素尤其扮演着越来越为重要的角色。为了在真实应用程序中取得更好的运行结果,就要求各类三维模型相关的分析建模算法拥有更高的计算精度。三维模型的视角转换常常作为其他三维模型相关算法的预处理工作。当现有技术中的视角转换,通常存在无法准确转换的目标视角的问题。
技术实现思路
1、为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种三维模型的视角转换方法和装置。
2、根据本公开实施例的一个方面,提供了一种三维模型的视角转换方法,包括:
3、获得在第一视角下展示的预设三维模型;其中,所述预设三维模型在所述第一视角下显示至少一个标签,所述预设三维模型中包括至少一个三维子模型,每个所述三维子模型对应一个所述标签;
4、响应于接收到对所述至少一个标签中的目标标签的触发操作,确定所述目标标签的坐标点相对所述预设三维模型的底面的标签高度值;
5、基于所述标签高度值和预设角度,确定所述目标标签对应的目标位置;
6、基于所述目标位置实现第二视角展示所述预设三维模型;其中,所述预设三维模型在所述第二视角下至少显示所述目标标签对应的三维子模型。
7、可选地,所述确定所述目标标签的坐标点相对所述预设三维模型的底面的标签高度值,包括:
8、确定在模型三维坐标系下,所述预设三维模型的底面的第一高度值和所述目标标签的坐标点的第二高度值;
9、基于所述第一高度值和所述第二高度值,确定所述标签高度值。
10、可选地,所述确定在模型三维坐标系下,所述预设三维模型的底面的第一高度值和所述目标标签的坐标点的第二高度值,包括:
11、确定所述预设三维模型的包围盒;
12、基于所述包围盒确定所述预设三维模型的底面在所述模型三维坐标系中纵轴的坐标值,基于所述坐标值确定所述第一高度值;
13、基于所述目标标签的坐标点对应的三维坐标中的纵轴坐标值,确定所述第二高度值。
14、可选地,所述基于所述标签高度值和预设角度,确定所述目标标签对应的目标位置,包括:
15、基于所述标签高度值和所述预设角度,确定目标高度值;
16、基于所述目标高度值,确定在模型三维坐标系下的一个目标平面;
17、在所述目标平面上确定一个圆形轨迹;
18、将所述圆形轨迹上的至少一个坐标点确定为所述目标位置。
19、可选地,所述基于所述标签高度值和所述预设角度,确定目标高度值,包括:
20、基于所述标签高度值与预设参数,确定参考高度值;
21、基于所述参考高度值与所述预设角度的三角函数值的乘积,以及所述标签高度值,确定所述目标高度值。
22、可选地,所述在所述目标平面上确定一个圆形轨迹,包括:
23、基于所述目标高度值和所述目标标签的坐标点的三维坐标,确定中心点;
24、基于所述标签高度值和所述预设角度,确定长度值;
25、基于所述中心点作为圆心,基于所述长度值作为半径,确定所述圆形轨迹。
26、可选地,所述将所述圆形轨迹上的至少一个坐标点确定为所述目标位置,包括:
27、按照预设数量对所述圆形轨迹进行分割,在所述圆形轨迹上确定所述预设数量的坐标点作为参考点;
28、基于所述预设数量的参考点,确定所述目标位置。
29、可选地,所述基于所述预设数量的参考点,确定所述目标位置,包括:
30、对所述预设数量的参考点中的每个参考点执行碰撞测试,确定每个所述参考点是否通过碰撞测试;
31、根据每个所述参考点是否通过碰撞测试的结果,确定至少一个通过碰撞测试的参考点;
32、基于所述至少一个通过碰撞测试的参考点,确定所述目标位置。
33、可选地,所述对所述预设数量的参考点中的每个参考点执行碰撞测试,确定每个所述参考点是否通过碰撞测试,包括:
34、针对所述预设数量的参考点中的每个参考点,以所述参考点作为原点,向所述目标标签的坐标点建立射线,得到参考射线;
35、根据所述参考射线,确定所述参考点是否通过碰撞测试。
36、可选地,所述根据所述参考射线,确定所述参考点是否通过碰撞测试,包括:
37、根据所述参考射线与所述预设三维模型的交点和所述参考点之间的距离,确定第一距离;
38、根据所述参考点到所述目标标签的坐标点的距离,确定第二距离;
39、根据所述第一距离和所述第二距离之间的关系,确定所述参考点是否通过碰撞测试。
40、可选地,所述基于所述至少一个通过碰撞测试的参考点,确定所述目标位置,包括:
41、基于所述至少一个通过碰撞测试的参考点在所述圆形轨迹上的位置,确定所述至少一个参考点的相邻关系;
42、基于所述相邻关系,对所述至少一个参考点进行聚类,得到至少一个参考点集;其中,每个所述参考点集中包括至少一个参考点,所述参考点集中的每个参考点与所述参考点集中的至少一个其他参考点相邻;
43、基于包括参考点数量最多的所述参考点集,确定所述目标位置。
44、可选地,所述基于包括参考点数量最多的所述参考点集,确定所述目标位置,包括:
45、响应于所述参考点集中包括的参考点数量为偶数,计算所述参考点集中包括的多个参考点中中心位置的两个参考点在所述圆形轨迹上的中点,将所述中点作为所述目标位置;
46、响应于所述参考点集中包括的参考点数量为奇数,将所述参考点集中包括的多个参考点中中心位置的参考点作为所述目标位置。
47、根据本公开实施例的另一方面,提供了一种三维模型的视角转换装置,包括:
48、第一模型展示模块,用于获得在第一视角下展示的预设三维模型;其中,所述预设三维模型在所述第一视角下显示至少一个标签,所述预设三维模型中包括至少一个三维子模型,每个所述三维子模型对应一个所述标签;
49、操作接收模块,用于响应于接收到对所述至少一个标签中的目标标签的触发操作,确定所述目标标签的坐标点相对所述预设三维模型的底面的标签高度值;
50、目标位置确定模块,用于基于所述标签高度值和预设角度,确定所述目标标签对应的目标位置;
51、第二模型展示模块,用于基于所述目标位置实现第二视角展示所述预设三维模型;其中,所述预设三维模型在所述第二视角下至少显示所述目标标签对应的三维子模型。
52、可选地,所述操作接收模块,具体用于确定在模型三维坐标系下,所述预设三维模型的底面的第一高度值和所述目标标签的坐标点的第二高度值;基于所述第一高度值和所述第二高度值,确定所述标签高度值。
53、可选地,所述操作接收模块在确定在模型三维坐标系下,所述预设三维模型的底面的第一高度值和所述目标标签的坐标点的第二高度值时,用于确定所述预设三维模型的包围盒;基于所述包围盒确定所述预设三维模型的底面在所述模型三维坐标系中纵轴的坐标值,基于所述坐标值确定所述第一高度值;基于所述目标标签的坐标点对应的三维坐标中的纵轴坐标值,确定所述第二高度值。
54、可选地,所述目标位置确定模块,包括:
55、高度确定单元,用于基于所述标签高度值和所述预设角度,确定目标高度值;
56、目标平面确定单元,用于基于所述目标高度值,确定在模型三维坐标系下的一个目标平面;
57、轨迹确定单元,用于在所述目标平面上确定一个圆形轨迹;
58、轨迹位置确定单元,用于将所述圆形轨迹上的至少一个坐标点确定为所述目标位置。
59、可选地,所述高度确定单元,具体用于基于所述标签高度值与预设参数,确定参考高度值;基于所述参考高度值与所述预设角度的三角函数值的乘积,以及所述标签高度值,确定所述目标高度值。
60、可选地,所述轨迹确定单元,具体用于基于所述目标高度值和所述目标标签的坐标点的三维坐标,确定中心点;基于所述标签高度值和所述预设角度,确定长度值;基于所述中心点作为圆心,基于所述长度值作为半径,确定所述圆形轨迹。
61、可选地,所述轨迹位置确定单元,具体用于按照预设数量对所述圆形轨迹进行分割,在所述圆形轨迹上确定所述预设数量的坐标点作为参考点;基于所述预设数量的参考点,确定所述目标位置。
62、可选地,所述轨迹位置确定单元在基于所述预设数量的参考点,确定所述目标位置时,用于对所述预设数量的参考点中的每个参考点执行碰撞测试,确定每个所述参考点是否通过碰撞测试;根据每个所述参考点是否通过碰撞测试的结果,确定至少一个通过碰撞测试的参考点;基于所述至少一个通过碰撞测试的参考点,确定所述目标位置。
63、可选地,所述轨迹位置确定单元在对所述预设数量的参考点中的每个参考点执行碰撞测试,确定每个所述参考点是否通过碰撞测试时,用于针对所述预设数量的参考点中的每个参考点,以所述参考点作为原点,向所述目标标签的坐标点建立射线,得到参考射线;根据所述参考射线,确定所述参考点是否通过碰撞测试。
64、可选地,所述轨迹位置确定单元在根据所述参考射线,确定所述参考点是否通过碰撞测试时,用于根据所述参考射线与所述预设三维模型的交点和所述参考点之间的距离,确定第一距离;根据所述参考点到所述目标标签的坐标点的距离,确定第二距离;根据所述第一距离和所述第二距离之间的关系,确定所述参考点是否通过碰撞测试。
65、可选地,所述轨迹位置确定单元在基于所述至少一个通过碰撞测试的参考点,确定所述目标位置时,用于基于所述至少一个通过碰撞测试的参考点在所述圆形轨迹上的位置,确定所述至少一个参考点的相邻关系;基于所述相邻关系,对所述至少一个参考点进行聚类,得到至少一个参考点集;其中,每个所述参考点集中包括至少一个参考点,所述参考点集中的每个参考点与所述参考点集中的至少一个其他参考点相邻;基于包括参考点数量最多的所述参考点集,确定所述目标位置。
66、可选地,所述轨迹位置确定单元在基于包括参考点数量最多的所述参考点集,确定所述目标位置时,用于响应于所述参考点集中包括的参考点数量为偶数,计算所述参考点集中包括的多个参考点中中心位置的两个参考点在所述圆形轨迹上的中点,将所述中点作为所述目标位置;响应于所述参考点集中包括的参考点数量为奇数,将所述参考点集中包括的多个参考点中中心位置的参考点作为所述目标位置。
67、根据本公开实施例的又一方面,提供了一种电子设备,包括:
68、存储器,用于存储计算机程序产品;
69、处理器,用于执行所述存储器中存储的计算机程序产品,且所述计算机程序产品被执行时,实现上述任一实施例所述的方法。
70、根据本公开实施例的还一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时,实现上述任一实施例所述的方法。
71、根据本公开实施例的再一方面,提供了一种计算机程序产品,包括计算机程序指令,其特征在于,该计算机程序指令被处理器执行时实现上述任一实施例所述的方法。
72、基于本公开上述实施例提供的一种三维模型的视角转换方法和装置,包括:获得在第一视角下展示的预设三维模型;响应于接收到对所述至少一个标签中的目标标签的触发操作,确定所述目标标签的坐标点相对所述预设三维模型的底面的标签高度值;基于所述标签高度值和预设角度,确定所述目标标签对应的目标位置;基于所述目标位置实现第二视角展示所述预设三维模型;其中,所述预设三维模型在所述第二视角下至少显示所述目标标签对应的三维子模型;本公开实施例通过基于标签高度值和预设角度来确定目标位置,基于目标位置实现将视角转换到可以对目标标签对应的三维子模型进行查看的第二视角,可以准确的从第一视角下的目标标签转换到第二视角下的三维子模型,实现准确的视角转换;克服了现有技术中由于第一视角下仅展示了标签而无法准确定位和转换视角的问题。
73、下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。