本发明涉及3d建模,具体为基于三维引擎的三维空间导向方法、系统、设备和介质。
背景技术:
1、三维引擎在3d建模领域的应用非常广泛,提供了许多强大的工具和功能,显著提高了3d模型设计和开发的效率,改善了3d模型视觉效果和交互性。基于三维引擎进行三维空间导向方法,实现了对三维场景中物体位置和方向的控制,能够使三维空间场景中物体的多个面进行灵活展示。
2、现有技术中,仅支持通过计算相机视角来导航三维场景中模型的x,y,z坐标系的三个方向,或者用户主动调整到需要的方向,这样无法满足快速查看模型细节的角度,不能快速的全面的展示三维场景中模型的轮廓,用户操作的关注点较多,使用效率低,操作体验感差。
技术实现思路
1、本发明的目的是提供一种基于三维引擎的三维空间导向方法、系统、设备和介质。
2、本发明技术方案如下:
3、一种基于三维引擎的三维空间导向方法,包括如下操作:
4、s1、创建一个包含有若干个定向面的导航盒,导航盒所有定向面的总覆盖角度,与控制三维引擎中三维场景方向的相机总角度相等;随机选取导航盒中的一个定向面,作为初始化定向面;初始化定向面的视角,与三维场景中相机的初始视角相同;
5、s2、基于获取的初始化定向面的索引数据,得到法线向量;法线向量经空间轴向量生成处理,得到方向向量;判断方向向量中,竖直分量的绝对值是否大于第一阈值;若大于,将初始化定向面的纵轴旋转角设为第一纵轴旋转角,作为更新纵轴旋转角;若不大于,执行s3;判断方向向量中,竖直分量是否大于第二阈值;若不大于,将初始化定向面的横轴旋转角设为第二阈值,作为更新横轴旋转角;若大于,执行s3;
6、s3、判断方向向量中,竖直分量的绝对值与第三阈值的差值,是否小于第四阈值;若不小于,控制初始化定向面的纵轴旋转角和横轴旋转角不变,分别得到更新纵轴旋转角和更新横轴旋转角;若小于,将初始化定向面的横轴旋转角设为第三阈值,得到更新横轴旋转角;将初始化定向面的纵轴旋转角进行修正处理,得到更新纵轴旋转角;导航盒的其他定向面执行s2和s3的操作后,得到相应更新纵轴旋转角和更新横轴旋转角;
7、s4、将导航盒的所有定向面的,更新纵轴旋转角和更新横轴旋转角,分别替换掉相机中对应的视角旋转角度,实现导航盒和相机的同步同向旋转。
8、s2中得到法线向量的操作具体为:基于初始化定向面的索引数据中三个顶点索引的坐标,得到第一边向量和第二边向量;第一边向量和第二边向量的叉积经标准化处理,得到法线向量。
9、s2中得到方向向量的操作具体为:将法线向量的相反数,作为待处理向量;获取待处理向量分别在横轴方向、纵轴方向和竖轴方向上的正交向量,得到横轴正交向量,纵轴正交向量和竖轴正交向量;横轴正交向量,纵轴正交向量和竖轴正交向量经归一化处理,得到横纵分量,纵轴分量和竖轴分量;横纵分量,纵轴分量和竖轴分量,形成了方向向量。
10、s3中修正处理的操作具体为:将方向向量中横纵分量和竖轴分量的正切值,与圆周率的和,作为更新纵轴旋转角。
11、在导航盒中每个定向面上分别创建不同的材质,得到修饰导航盒;基于修饰导航盒中每个定向面的横向宽度和纵向宽度,为每个定向面创建纹理,得到优化导航盒,用于执行s2中的操作。
12、一种基于三维引擎的三维空间导向系统,包括:
13、导航盒创建模块,用于创建一个包含有若干个定向面的导航盒,导航盒所有定向面的总覆盖角度,与控制三维引擎中三维场景方向的相机总角度相等;随机选取导航盒中的一个定向面,作为初始化定向面;初始化定向面的视角,与三维场景中相机的初始视角相同;
14、定向面第一更新旋转角生成模块,用于基于获取的初始化定向面的索引数据,得到法线向量;法线向量经空间轴向量生成处理,得到方向向量;判断方向向量中,竖直分量的绝对值是否大于第一阈值;若大于,将初始化定向面的纵轴旋转角设为第一纵轴旋转角,作为更新纵轴旋转角;若不大于,执行定向面第二更新旋转角生成模块;判断方向向量中,竖直分量是否大于第二阈值;若不大于,将初始化定向面的横轴旋转角设为第二阈值,作为更新横轴旋转角;若大于,执行定向面第二更新旋转角生成模块;
15、定向面第二更新旋转角生成模块,用于判断方向向量中,竖直分量的绝对值与第三阈值的差值,是否小于第四阈值;若不小于,控制初始化定向面的纵轴旋转角和横轴旋转角不变,分别得到更新纵轴旋转角和更新横轴旋转角;若小于,将初始化定向面的横轴旋转角设为第三阈值,得到更新横轴旋转角;将初始化定向面的纵轴旋转角进行修正处理,得到更新纵轴旋转角;导航盒的其他定向面执行定向面第一更新旋转角生成模块和定向面第二更新旋转角生成模块的操作后,得到相应更新纵轴旋转角和更新横轴旋转角;
16、导航盒和相机同步模块,用于将导航盒的所有定向面的,更新纵轴旋转角和更新横轴旋转角,分别替换掉相机中对应的视角旋转角度,实现导航盒和相机的同步同向旋转。
17、一种基于三维引擎的三维空间导向设备,其特征在于,包括处理器和存储器,其中,处理器执行存储器中保存的计算机程序时实现上述的基于三维引擎的三维空间导向方法。
18、一种计算机可读存储介质,其特征在于,用于存储计算机程序,其中,计算机程序被处理器执行时实现上述的基于三维引擎的三维空间导向方法。
19、本发明的有益效果在于:
20、本发明提供的一种基于三维引擎的三维空间导向方法,通过在三维引擎中创建一个包含有若干个定向面的导航盒,导航盒所有定向面的总覆盖角度与控制三维引擎中三维场景方向的相机总角度相等;对导航盒的每个定向面都计算出更新横轴旋转角和更新纵轴旋转角,并将更新横轴旋转角和更新纵轴旋转角同步到三维场景中的相机中,这样可以充分覆盖三维场景中模型的各个面,快速定向三维场景中模型的某个面,使得三维模型细节更加立体直观,减少用户主动计算位置或者拖拽三维模型到适应位置的不准确性,从而提高使用效率,提高用户操作体验感。
1.一种基于三维引擎的三维空间导向方法,其特征在于,包括如下操作:
2.根据权利要求1所述的基于三维引擎的三维空间导向方法,其特征在于,所述s2中,得到法线向量的操作具体为:
3.根据权利要求1所述的基于三维引擎的三维空间导向方法,其特征在于,所述s2中,得到方向向量的操作具体为:
4.根据权利要求1所述的基于三维引擎的三维空间导向方法,其特征在于,所述s3中,修正处理的操作具体为:
5.根据权利要求1所述的基于三维引擎的三维空间导向方法,其特征在于,在所述导航盒中每个定向面上分别创建不同的材质,得到修饰导航盒;基于所述修饰导航盒中每个定向面的横向宽度和纵向宽度,为每个定向面创建纹理,得到优化导航盒,用于执行所述s2中的操作。
6.一种基于三维引擎的三维空间导向系统,其特征在于,包括:
7.一种基于三维引擎的三维空间导向设备,其特征在于,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1-5任一项所述的基于三维引擎的三维空间导向方法。
8.一种计算机可读存储介质,其特征在于,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的基于三维引擎的三维空间导向方法。
