一种三维模型的设计方法和设计装置
技术领域
本发明涉及虚拟现实技术领域,具体涉及一种三维模型的设计方法和设计装置。
背景技术
虚拟现实系统是一种可以创建、体验虚拟世界的计算机仿真系统,涉及到计算机图形学、人机交互技术、传感技术以及人工智能等领域,通过计算机产生逼真的视听等感觉来使用户产生沉浸式体验仿佛真的身处于虚拟世界之中。
现有的三维模型设计方案是通过二维平面方式来进行三维的模型设计,一般利用PC机的二维平面屏幕通过操作转换不同的视角来观察三维模型并进行设计,设计者不能够直接观察到设计的最终三维立体效果,设计过程不够直观、便捷。
发明内容
本发明提供了一种三维模型的设计方法和设计装置,以便于更加直观、便捷地进行三维模型的设计工作。
根据本发明的一个方面,本发明提供了一种三维模型的设计方法,包括:
将三维模型导入到虚拟现实场景中;
在虚拟现实场景中展示所述三维模型,并对所述三维模型进行修改以得到所需的三维模型;
将修改后的三维模型从虚拟现实场景中导出并保存。
可选地,所述将三维模型导入到虚拟现实场景中,具体包括:
使用Unity-VR的Resource.Load()方法读取保存有三维模型的模型文件,将所述模型文件中的三维模型加载到内存中;
将所述三维模型在虚拟现实场景中的预设位置实例化。
可选地,所述在虚拟现实场景中展示所述三维模型,具体包括:
调整Unity-VR中分别用于模拟左眼视角和右眼视角的左相机和右相机的位置,使所述三维模型位于所述左相机和右相机的视野中;
将所述左相机和右相机与用户头部的位置跟踪数据相关联,使所述左相机和右相机随用户头部运动。
可选地,所述对所述三维模型进行修改以得到所需的三维模型,具体包括:
根据虚拟现实设备的外设数据,获取用户的操作;
根据用户的操作对所述三维模型进行相应的修改。
可选地,所述将所述三维模型从虚拟现实场景中导出并保存,具体包括:
将所述三维模型通过FBX SDK打包,输出FBX格式的模型文件;
或者,根据所述三维模型的几何信息以及OBJ模型文件格式的标准,将所述三维模型保存为OBJ格式的模型文件。
根据本发明的另一个方面,本发明提供了一种三维模型的设计装置,包括:模型导入单元、模型设计单元和模型导出单元;
所述模型导入单元,用于将三维模型导入到虚拟现实场景中;
所述模型设计单元,用于在虚拟现实场景中展示所述三维模型,并对所述三维模型进行修改以得到所需的三维模型;
所述模型导出单元,用于将修改后的三维模型从虚拟现实场景中导出并保存。
可选地,所述模型导入单元具体用于:使用Unity-VR的Resource.Load()方法读取保存有三维模型的模型文件,将所述模型文件中的三维模型加载到内存中,并将所述三维模型在虚拟现实场景中的预设位置实例化。
可选地,所述模型设计单元包括展示模块,用于调整Unity-VR中分别用于模拟左眼视角和右眼视角的左相机和右相机的位置,使所述三维模型位于所述左相机和右相机的视野中,并将所述左相机和右相机与用户头部的位置跟踪数据相关联,使所述左相机和右相机随用户头部运动。
可选地,所述模型设计单元还包括修改模块,用于根据虚拟现实设备的外设数据,获取用户的操作,并根据用户的操作对所述三维模型进行相应的修改。
可选地,所述模型导出单元具体用于:将所述三维模型通过FBX SDK打包,输出FBX格式的模型文件;或者根据所述三维模型的几何信息以及OBJ模型文件格式的标准,将所述三维模型保存为OBJ格式的模型文件。
本发明的有益效果是:本发明实施例通过将三维模型导入到已有的虚拟现实场景中,在虚拟现实场景中展示三维模型并进行修改,最后将修改后的三维模型从虚拟现实场景中导出并保存,使用户可以在虚拟现实场景中,一边对三维模型进行修改,一边实时观察三维模型在虚拟现实环境中的立体视觉效果,直观、便捷地对三维模型进行读取、修改、导出等工作。
附图说明
图1是本发明一个实施例提供的一种三维模型的设计方法的流程图;
图2是本发明一个实施例提供的一种三维模型的设计装置的功能框图。
具体实施方式
本发明的设计构思是:现有的三维模型设计方案是通过二维平面方式来进行三维的模型设计,一般利用PC机的二维平面屏幕通过操作转换不同的视角来观察三维模型并进行设计,不够直观、便捷。本发明从传统二维平面的设计模式转向虚拟现实三维空间的设计模式,通过将三维模型导入到已有的虚拟现实场景中,在虚拟现实场景中展示三维模型并进行修改,最后将修改后的三维模型从虚拟现实场景中导出并保存,使用户可以在虚拟现实场景中,一边对三维模型进行修改,一边实时观察三维模型在虚拟现实环境中的立体视觉效果,直观、便捷地对三维模型进行读取、修改、导出等工作。
实施例一
图1是本发明一个实施例提供的一种三维模型的设计方法的流程图,如图1所示,本实施例提供的三维模型的设计方法包括:
步骤S110:将三维模型导入到虚拟现实场景中。
Unity是Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的游戏开发平台。通常,三维模型以模型文件的形式保存,应当首先动态加载三维模型,获取模型数据,即将模型文件中保存的三维模型导入到虚拟现实场景中。
本实施例利用Untiy-VR应用通过Unity自身的本地资源动态加载方法Resource.Load(),根据指定的文件名读取模型文件,将模型文件中的三维模型加载到内存中,然后指定三维模型在Unity场景坐标系中的坐标,即可读取三维模型将其实例化,并在已有的虚拟现实场景中的预设位置展示。
步骤S120:在虚拟现实场景中展示三维模型,并对三维模型进行修改以得到所需的三维模型。
Unity-VR通过左相机和右相机来模拟对应的左右眼视角,根据步骤S120中动态加载的三维模型在Unity场景坐标系中的坐标,调整左相机和右相机的位置,以便于模型出现在左相机和右相机的视野中,然后设置左相机和右相机的相对位置模拟双眼的视差,在Unity坐标系中一般为0.063,用户便可以在虚拟现实场景中直观地获取三维模型的立体视觉效果。为了使用户能够从不同的距离、不同的角度观察三维模型的立体效果,本实施例将左相机和右相机与用户头部的位置跟踪数据相关联,使左相机和右相机可以随用户头部运动,用户可以通过佩戴虚拟现实头戴设备,进行旋转位移,此时虚拟现实头戴设备上报的位置跟踪数据将同步作用于Unity的左相机和右相机,这样便可使用户通过虚拟现实设备自由地观察虚拟场景以及其中的三维模型了。
在进行三维模型设计的过程中,Unity需要接收用户修改模型的指令,在现有的设计方案中,用户通常是通过鼠标、键盘等设备向Unity发送指令,不便于在虚拟现实场景中进行操作。因此本实施例通过虚拟现实设备的外设进行交互数据输入,根据虚拟现实设备的外设数据,获取用户的操作,对三维模型进行相应的修改。例如当用户操作虚拟现实设备的手柄的方向键时,系统控制鼠标指针相应地移动;当用户按下手柄上的“确定”按键时,对三维模型进行某一项修改等。
步骤S130:将修改后的三维模型从虚拟现实场景中导出并保存。
对三维模型修改完毕得到目标三维模型之后,本实施例通过FBX SDK对目标三维模型进行打包,输出生成为FBX格式的模型文件。FBX SDK是一款用于跨平台的免费三维创作与交换格式的软件,通过FBX用户能访问大多数三维供应商的三维文件。或者,也可以导出为OBJ格式的模型文件,只需要对目标三维模型进行解析,参照OBJ文件格式的标准,将目标三维模型对应的法线向量、顶点等模型解析结果写入文件即可。
本实施例从传统二维平面的设计模式转向虚拟现实三维空间的设计模式,用户可以在虚拟现实场景中,一边对三维模型进行修改,一边实时观察三维模型在虚拟现实环境中的立体视觉效果,直观、便捷地对三维模型进行读取、修改、导出等工作。
实施例二
图2是本发明一个实施例提供的一种三维模型的设计装置的功能框图。如图2所示,本实施例提供的三维模型的设计装置包括:模型导入单元210、模型设计单元220和模型导出单元230。
模型导入单元210将三维模型导入到虚拟现实场景中,模型设计单元220在虚拟现实场景中展示三维模型,并对三维模型进行修改以得到所需的三维模型,模型导出单元230将修改后的三维模型从虚拟现实场景中导出并保存。用户可以在虚拟现实场景中,一边对三维模型进行修改,一边实时观察三维模型在虚拟现实环境中的立体视觉效果,直观、便捷地对三维模型进行读取、修改、导出等工作。
在一个优选实施例中,模型导入单元210具体用于:使用Unity-VR的Resource.Load()方法读取保存有三维模型的模型文件,将模型文件中的三维模型加载到内存中,并将三维模型在虚拟现实场景中的预设位置实例化。
在另一个优选实施例中,模型设计单元220包括展示模块221和修改模块222。展示模块221用于调整Unity-VR中分别用于模拟左眼视角和右眼视角的左相机和右相机的位置,使三维模型位于左相机和右相机的视野中,并将左相机和右相机与用户头部的位置跟踪数据相关联,使左相机和右相机随用户头部运动。修改模块222用于根据虚拟现实设备的外设数据,获取用户的操作,并根据用户的操作对三维模型进行相应的修改。
在又一个优选实施例中,模型导出单元230具体用于:将三维模型通过FBX SDK打包,输出FBX格式的模型文件;或者根据三维模型的几何信息以及OBJ模型文件格式的标准,将三维模型保存为OBJ格式的模型文件。
以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围应以权利要求的保护范围为准。
需要说明的是:
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
本发明的三维模型的设计装置传统上包括处理器和以存储器形式的计算机程序产品或者计算机可读介质。存储器可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器具有用于执行上述方法中的任何方法步骤的程序代码的存储空间。例如,用于程序代码的存储空间可以包括分别用于实现上面的方法中的各种步骤的各个程序代码。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为便携式或者固定存储单元。该存储单元可以类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括用于执行根据本发明的方法步骤的计算机可读代码,即可以由例如处理器读取的代码,这些代码被运行时,导致该三维模型的设计装置执行上面所描述的方法中的各个步骤。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。单词“包括”不排除存在未列在权利要求中的元件或步骤。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。