[发明专利]一种基于unity3d的知识图谱3D可视化方法有效
申请号: | 201911376996.5 | 申请日: | 2019-12-27 |
公开(公告)号: | CN111125347B | 公开(公告)日: | 2023-10-27 |
发明(设计)人: | 窦方坤;王小红;赵志刚;潘景山;郭莹;霍吉东;杨帅;曹皓伟 | 申请(专利权)人: | 山东省计算中心(国家超级计算济南中心) |
主分类号: | G06F16/338 | 分类号: | G06F16/338;G06F16/36 |
代理公司: | 北京华际知识产权代理有限公司 11676 | 代理人: | 褚庆森 |
地址: | 250014 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 unity3d 知识 图谱 可视化 方法 | ||
1.一种基于unity3d的知识图谱3D可视化方法,其特征在于,通过以下步骤来实现:
a).摄像机、天空盒和场景初始化;摄像机初始化:向Hierarchy窗格中插入一个摄影机,或者使用新建项目后原有的摄影机,作为沉浸式摄影机,调整其在场景中的位置,使其在水平方向上偏离场景中心点;适当增大该摄影机的可视距离,以获得更好的可视效果;向Hierarchy窗格插入一个新的摄影机作为全局摄影机,调整其在场景中的位置,使其镜头向斜下方俯视并对准场景中心点;
天空盒初始化:对场景设置全局的天空盒,并修改Wrap Mode的值防止出现贴图接缝,选用暗色调星空背景的天空盒材质;
相关场景参数设置:取消点光源,设置全局光源,光源颜色选为白色系;取消掉场景中的重力,使场景中只存在力导向模型中自定义的力,同时防止添加的模型下落;
b).三元组数据获取,从服务器端获取三元组json数据,并进行解析;将三元组数据分组为实体和关系两类,实体应至少包括实体的id、实体名称和实体类别,关系应至少包括关系的id、关系的源实体id、关系的目标实体id和关系的类别,将实体和关系分别实例化为类数组;
c).预制体的创建及三维物理结构组织;首先,创建具有不同材质和模型的球形预制体,对应实体的不同类别;根据实体类数组中的实体id和类别,将不同的预制体实例化为场景中的对象,该对象的name即为对应实体的id,并将实体的名称绘制在对象的正上方;
之后,设置对象的三维物理结构,包括对象的质量和初始位置;要求所有对象的初始位置在一小块三维空间中随机分布,且需保证彼此之间保持一定的间距,避免发生穿模问题;
最后,根据关系类数组中的关系的源实体和目标实体,在源实体和目标实体对应的对象之间绘制激光效果,以建立两个实体间关系;同时,根据关系的类别,为激光束添加不同的纹理,并将关系名称绘制在激光束的中点正上方;
d).三维力学模型构建,为了能够使对象之间能够自动布局,达到最佳的可视效果,将使用力导向作为自动布局的构建方法,需将传统二维空间中的力导向模型转化为三维空间中的力导向模型;
定义对象在三维空间中的速度、加速度和当前位置,均使用三维坐标进行表示,除当前位置使用对象的真实坐标外,速度和加速度的初始值都为0;
对于力学建模,主要来自于每两个对象之间的斥力和存在关系的对象之间的拉力;对于斥力模型,使用库伦定律进行计算,即为公式(1):
其中G为引力常量,值为6.67×10-11,为方便计算,取值为6.67;M、m分别为两对象的质量,r为两对象之间的距离;
对于拉力模型,使用弹簧拉力公式,为公式(2):
F=kx (2)
其中,k为弹簧的劲度系数,x为弹簧的形变量;
同时,为了保证在动态布局的过程中,系统整体不会偏离场景中心,添加一个指向场景中心的全局引力;在场景原点处设置一个并不渲染的对象,将其质量设为一个较大值,并保持其在原点静止不动;
对于加速度和速度,则分别由加速度公式和速度公式给出,为公式(3)和公式(4):
v=v+a·t (4)
公式(3)和公式(4)中,F为对象所受合力大小,m为对象质量,a为对象加速度;v为对象速度,t为时间;
最后,为保证系统的稳定状态能够及时收敛,而不是一直运动下去,需要添加一个全局的线性粘性阻尼力,该力的公式为公式(5):
F=c·v (5)
其中,c为粘性阻尼系数;
e).帧循环;根据设定的物理模型,对实体和关系的对象进行物理状态的更新,包括实体对象的位置和关系对象的起始终止坐标;每次帧循环中,都要根据实体对象的质量、位置和速度,计算该对象受到的中心引力、实体对象之间的相互斥力、关系对象的引力和运动过程中受到的阻尼力;对这些力在x、y、z轴方向上进行分解并计算其合力,再由其质量计算三个轴向上的加速度,最终更新三个轴向上新的速度;之后,更新该实体对象的位置和速度的物理属性,并依照新属性进行场景的渲染和更新UI;直到整个场景中的系统达到一个收敛性的稳定阈值时,伴随帧循环的力学计算和物理属性更新都要持续进行下去;
f).沉浸式摄影机脚本;沉浸式摄影机为标准的第一人称摄影机,初始应置于场景原点附近,将支持跟随鼠标的视角旋转,由方向键和“ASDW”键控制前后左右移动,鼠标滚轮控制移动速度;“Tab”键控制菜单UI的切入切出,切出菜单时取消视角的鼠标跟随,以便实现检索、查看、传送功能;
g).全局摄影机脚本;全局摄影机为地图摄影机,目的在于为用户全局的查看整个图谱的规模、结构和关联关系提供可能;全局摄影机的鼠标控制分为鼠标左键实现场景拖拽,鼠标右键实现镜头转向,鼠标滚轮控制缩放;同时,全局摄影机可由键盘的“Q”、“E”两个按键控制视角转向,同样适用“Tab”键控制菜单UI的切入切出;
h).属性信息显示及UI绘制;UI界面的目的是为了对某一实体或关系的属性信息进行详细的展示,整个UI界面分为4部分:顶部为目前指向的实体名称及其ID;左侧为检索功能区,用户可选择相应的搜索条件,并输入检索的关键字,服务器会将检索的结果返回给客户端,并在UI界面上进行更新;右侧为实体属性的详细信息,用来展示该实体具体的属性字段;中间为图形展示区,一是用来展示全局的3D知识图谱中该实体节点所在的位置及其与其它实体的关联情况,二是用来展示某些实体可能具有的3D模型,二者可以相互切换;
i).检索功能及传送功能;用户选择检索条件并键入检索关键字,服务器将检索到的结果返回到客户端;用户选择关注某一返回的节点时,将重新构建以该节点的关联关系为中心的知识图谱3D可视化场景;
用户对于图谱中某一外围节点,可以选择对该节点进行扩展,服务器对该节点的关联实体进行进一步检索并返回;新返回的实体会添加到现有的场景中,并按力导向的模型进行自动化的布局调整;
还提供传送功能,用户点击沉浸视图或全局视图中的某一对象时,将弹出选项询问用户是否传送,当用户选择传送时,会将用户传送至该节点附近并将沉浸式摄影机镜头中心对准该对象;
j).沉浸视图、全局视图切换;系统提供沉浸视图和全局视图的切换功能,以方便用户从不同的视角观察图谱,快捷键为“M”;沉浸视图和全局视图的切换,实际是用户的视角在沉浸式摄影机和全局摄影机之间的切换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东省计算中心(国家超级计算济南中心),未经山东省计算中心(国家超级计算济南中心)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911376996.5/1.html,转载请声明来源钻瓜专利网。