一种Delta3D三维场景漫游的鼠标操作方法,包括:场景初始化,包括模型加载和更改鼠标与场景漫游方式的对应关系;拾取鼠标事件,记录事件类型和调整数值,当鼠标产生了触发事件,三维引擎将及时拾取该事件,并记录事件类型和因鼠标操作而产生的微小的变化量;进行不同漫游方式的三维空间计算,计算出摄像机新的空间位置和姿态位置以及摄像机与场景模型之间的距离;绘制出缩放后的场景图。本发明专利技术可以很好的解决用户与虚拟场景交互时所面临的问题,使其场景漫游操作更人性化,进一步提高了场景交互的效率。本发明专利技术通过对Delta3D的漫游方式的改进,很好的满足了用户操作虚拟场景的客观需求,提高了操作的便利性和效率。
【技术实现步骤摘要】
本专利技术涉及一种Delta3D三维场景漫游。特别是涉及一种。
技术介绍
虚拟现实的核心思想是对现实或超现实世界的模拟和再现,是一种随计算机技术、图形学技术等发展而来的跨学科技术。随着社会信息化进程进一步加快,人们对于信息的表示方式不再局限文本类的形式,更多是趋向于看的见、摸的着、可交互的、可反馈的形式。虚拟现实技术正是基于此需求而诞生的。虚拟现实技术关键在于信息的可视化实现,信息的数据源形式具有复杂性和多样性特点,主要包含场景的各种几何数据、外界对场景的触发数据以及场景的反馈数据等。场景的再现过程涉及到计算机图形学、数据库、人工智能、数值计算和分析等多个学科领域,研究内容包括场景建模、场景图组织、场景控制和场景漫游等问题。三维引擎是实现虚拟现实建立虚拟场景的基础,建立在良好三维引擎基础上的场景,可以体现较强的 Immersion、Interactivity、Imagination 特性。Delta3D 正是这样一款基于C++开发的三维引擎,其集成了 0SG、0penAL、0DE、CAL3D等工具,实现了虚拟场景建立、物理仿真、用户交互、动画设计等功能。基于Delta3D的场景建立主要有场景建模、文件配置、模型加载、场景初始化四个步骤,如图1所示。如果建立的虚拟场景没有任何的交互功能,那么作为一个孤寂的场景,将没有任何的实际应用价值。场景交互中最主要的一种实现方式是场景的漫游。在基于Delta3D建立的场景中,提供了一些基本的场景漫游方式,例如Walk、Fly、Orbit、FPS形式,但是基于上述四种形式的漫游方式并不很好的满足用户进行场景操作的目的,而且操作起来比较复杂,其中在进行场景的缩放时,需要用户按住鼠标滚轮进行鼠标的滑动来实现,这对于鼠标滚轮失效或者场景比较大的情况而言,显然是不能满足用户需求的。另外,在对场景进行平移和旋转时,其鼠标左右键的功能和主流的操作形式又不一致。因此有必要在原有的基础上,改进Delta3D的场景漫游方式。
技术实现思路
本专利技术所要解决的技术问题是,提供一种能够满足不同的信号输入对应不同的场景漫游的。本专利技术所采用的技术方案是一种,包括如下步骤I)场景初始化,包括模型加载和更改鼠标与场景漫游方式的对应关系;2)拾取鼠标事件,记录事件类型和调整数值当鼠标产生了触发事件,三维引擎将及时拾取该事件,并记录事件类型和因鼠标操作而产生的微小的变化量;3)进行不同漫游方式的三维空间计算,计算出摄像机新的空间位置和姿态位置以及摄像机与场景模型之间的距离;4)绘制出缩放后的场景图。步骤I)所述的更改鼠标与场景漫游方式的对应关系是,首先获取用于输入信号进行场景交互的鼠标,实现鼠标上的左、右按键和滚轮与场景的坐标轴的对应关系,具体对应关系包括I)左键分别与UpDownMapping和LeftRightMapping进行映射,影响场景中的ElevationAxis和AzimuthAxis轴,从而实现利用鼠标左键旋转场景图;2)滚轮与UpDownMapping进行映射,影响场景中DistanceAxis,从而实现利用鼠标滚轮对场景图距离的调整,即实现场景图的放大和缩小;3)右键分别与UpDownMapping和LeftRightMapping进行映射,影响场景中UpDownTranslationAxis 和 LeftRightTranslationAxis,从而实现利用鼠标右键对场景的平移的调整。步骤3)所述的进行不同漫游方式的三维空间计算,是依据事件类型,三维引擎进行相应的平移、旋转和缩放计算,计算 过程如下distDeIta=deIta^pDistanceMat= (O, distDelta, O)Pos=Pos+M*MatnDistance=pDistance+distDeIta式中delta表示因鼠标操作而产生的微小的变化量;distDelta为因delta的变化所产生的调整量;pDiatanCe为场景中摄像机与场景模型之间调整前的距离;Mat是将计算结果转化为向量形式;Pos为模型在场景中空间位置;M为三维引擎进行相应的平移或旋转或缩放的矩阵;nDistanCe是更新后的场景中摄像机与场景模型之间的距离。本专利技术的,可以很好的解决用户与虚拟场景交互时所面临的问题,使其场景漫游操作更人性化,进一步提高了场景交互的效率。本专利技术虽然是基于Delta3D的漫游方式的改进,但是改进过程的思想可被大多数的三维引擎采用。通过对Delta3D的漫游方式的改进,很好的满足了用户操作虚拟场景的客观需求,提高了操作的便利性和效率。附图说明图1是基于Delta3D的模型建立流程;图2是本专利技术的的流程图。具体实施例方式下面结合实施例和附图对本专利技术的做出详细说明。本专利技术的,涉及两个方面,一是硬件设备与场景交互的映射关系,即满足不同的信号输入对应不同的场景漫游功能;另一方面是映射关系的计算,即对不同的输入信号的三维计算。对于鼠标输入而言,映射关系满足一下三点I)鼠标右键实现场景的平移;2)鼠标滚轮实现场景的放大和缩小;3)鼠标左键对应于场景的旋转。对于其他形式的信号输入,应可以实现用户自定义模式,例如,键盘按键的自定义或操作手柄的自定义等。场景漫游除了上述映射关系的确定外,最主要的是现实场景的三维空间计算。三维空间的计算实质是场景中各个坐标系下的计算。在虚拟场景中涉及三种坐标系,世界坐标系是绝对坐标系,是静止不动,是一种参考坐标系。物体坐标系是场景模型自身的坐标系,为了方便模型的构建而建立的,随物体的移动而移动。惯性坐标系是一种为方便计算而人为设定的坐标系。本专利技术的,具体包括如下步骤I)场景初始化,包括模型加载和更改鼠标与场景漫游方式的对应关系所述的更改鼠标与场景漫游方式的对应关系是,首先获取用于输入信号进行场景交互的鼠标,实现鼠标上的左、右按键和滚轮与场景的坐标轴的对应关系,具体对应关系包括(I)左键分别与UpDownMapping和LeftRightMapping进行映射,影响场景中的ElevationAxis和AzimuthAxis轴,从而实现利用鼠标左键旋转场景图;(2)滚轮与UpDo wnMapping进行映射,影响场景中DistanceAxis,从而实现利用鼠标滚轮对场景图距离的调整,即实现场景图的放大和缩小;(3)右键分别与UpDownMapping和LeftRightMapping进行映射,影响场景中UpDownTranslationAxis 和 LeftRightTranslationAxis,从而实现利用鼠标右键对场景的平移的调整。2)拾取鼠标事件,记录事件类型和调整数值当鼠标产生了触发事件,三维引擎将及时拾取该事件,并记录事件类型和因鼠标操作而产生的微小的变化量;3)进行不同漫游方式的三维空间计算,计算出摄像机新的空间位置和姿态位置以及摄像机与场景模型之间的距离所述的进行不同漫游方式的三维空间计算,是依据事件类型,三维引擎进行相应的平移、旋转和缩放计算,为统一以及便于场景的三维计算,引入齐次坐标。引入齐次坐标后,场景的各种三维变换均可对应于三种变换矩阵或变换矩阵的组合。计算过程如下distDeIta=deIta^pDistance(I)Mat= (O, distDelta, O)(2本文档来自技高网...
【技术保护点】
一种Delta3D三维场景漫游的鼠标操作方法,其特征在于,包括如下步骤:1)场景初始化,包括模型加载和更改鼠标与场景漫游方式的对应关系;2)拾取鼠标事件,记录事件类型和调整数值当鼠标产生了触发事件,三维引擎将及时拾取该事件,并记录事件类型和因鼠标操作而产生的微小的变化量;3)进行不同漫游方式的三维空间计算,计算出摄像机新的空间位置和姿态位置以及摄像机与场景模型之间的距离;4)绘制出缩放后的场景图。
【技术特征摘要】
1.一种Delta3D三维场景漫游的鼠标操作方法,其特征在于,包括如下步骤1)场景初始化,包括模型加载和更改鼠标与场景漫游方式的对应关系;2)拾取鼠标事件,记录事件类型和调整数值当鼠标产生了触发事件,三维引擎将及时拾取该事件,并记录事件类型和因鼠标操作而产生的微小的变化量;3)进行不同漫游方式的三维空间计算,计算出摄像机新的空间位置和姿态位置以及摄像机与场景模型之间的距离;4)绘制出缩放后的场景图。2.根据权利要求1所述的Delta3D三维场景漫游的鼠标操作方法,其特征在于,步骤I)所述的更改鼠标与场景漫游方式的对应关系是,首先获取用于输入信号进行场景交互的鼠标,实现鼠标上的左、右按键和滚轮与场景的坐标轴的对应关系,具体对应关系包括1)左键分别与UpDownMapping和LeftRightMapping进行映射,影响场景中的 ElevationAxis和AzimuthAxis轴,从而实现利用鼠标左键旋转场景图;2)滚轮与UpDownMapping进行映射,影响场景中DistanceAxis,从而实现利用鼠标滚轮对场景图距离的调整,即实现场景图的放大和缩...
【专利技术属性】
技术研发人员:刘江,常超,
申请(专利权)人:天津大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。