三维交互技术在三视图训练软件开发中的应用

2010-07-10 06:57谭雪松李如超张延敏
制造业自动化 2010年3期
关键词:交互技术三视图虚拟现实

谭雪松,李如超,张延敏

(四川农业大学 信息与工程技术学院,雅安 625014)

0 引言

工程制图是现代设计人员必须掌握的一门基本技能,涉及到机械制图、建筑制图、电子电路制图以及园林制图等多个领域。同时,工程制图课程也是高等工科院校是一门重要的基础必修课,主要研究用投影法解决空间几何问题并在平面上表达空间物体的方法,培养学生工程图样的绘制和阅读能力。

学习工程制图时,需要重点学习对三维物体的形状及相关位置的空间逻辑思维和形象思维能力。对于初次涉足工程制图领域的人员来说,空间思维能力较弱,只有通过反复的实践训练和长期的经验积累才能逐步提高。三维交互技术通过对三维空间的虚拟物体进行几何变换、矩阵运算、最后通过渲染输出三维图像,再通过计算机输入设备的控制实现其在虚拟空间中的旋转和位置变化,并通过控制虚拟摄像机来实现镜头远近,从而实现对虚拟三维空间中的物体控制。

随着当代CAD技术的发展,可以非常轻松地使用Pro/ENGINEER、UG、3dsmax以及MAYA等软件创建出“所见即所得”的三维模型,并可以方便地获得三维模型向特定投影面投影后的二维图形。本文将将介绍综合使用CAD技术和三维交互技术开发三视图训练软件的一般方法。

1 系统的功能和结构

1.1 系统的功能

传统的三视图训练,通常只给出一组三视图,让训练者结合图形上的线条通过空间想象和抽象思维,逐步在头脑中建立空间三维模型,其学习难度较大。同时,教师在讲授类似课程时,费时费力,而且不一定能达到良好的教学效果。

本文开发的三视图训练系统可以用训练学生对三维模型的空间想象力。系统的功能模块如图1所示,对应的实际界面如图2所示。在选项模块中,给出一组(4个)外形相近的三维模型,在三视图显示模块中给出符合第三角画法的一组三视图。测试者从A、B、C和D等4个选项中单击选中一个选项后,在透视图模块中可以通过简单的鼠标操作来实现对模型的旋转和缩放等操作,以便更好地观察模型上的结构细节。训练时,通过透视图可以全方位观察实体模型,直观了解其上的形体结构和线面关系。既能提高学习兴趣,又能快速提高空间思维能力。

图1 系统模块划分

图2 系统界面

该系统中包含容量巨大的三维模型库,并按照模型复杂程度不同分组排列,可以从基础开始,逐步训练学生的空间想象能力。

1.2 系统的结构

为了便于教学和在网络上使用,该系统包括两个基本板块:一个是客户板块,用于用户用学习和测试;另一个是是服务器板块,负责完成测试信息的存储和统计工作。两个模块使用C/S模式传输协议进行数据传输。如图3所示。

2 开发工具的选择

2.1 程序开发语言

本设计使用C#作为程序开发部分的主要语言,C#是基于Microsoft.net平台,面向对象的设计语言。具有语法简洁、面向对象设计以及与Web的结合紧密等特点。安全性、灵活性和兼容性都较好。本设计使用Microsoft Visual C# 2005 Express Edition作为程序开发部分的主要工具。该开发工具具有开发简单,开发效率高等有点,是C#语言开发的首选开发工具。C#是基于Microsoft.net平台的语言,所以开发软件之前首先需要安装Microsoft.net framework 2.0。

本设计的核心代码基于微软公司开发的DirectX 9.0,DirectX9.0是由微软公司研发的是一组低级应用程序编程接口,可为 Windows 程序提供高性能的硬件加速多媒体支持。特别是在3D图形方面的表现非常优秀。

2.2 机械建模工具

在本设计中首先使用Pro/ENGINEER软件制作精确机械模型,但由于Pro/ENGINEER不能直接导出本软件能够识别的X文件,所以需要将Pro/E中设计好的机械模型以.stl文件格式导入3ds max软件进行相应的设置之后,才能导出x文件。在3ds max中可以设置模型的材质和贴图,并能为其制作简单的帧频动画。

DirectX中有一部分叫DirectDraw,其为图形绘演API,提供对图形的强大的访问处理能力,而在DirectDraw中集成了一些三维图形相关的功能,称为Direct3D。Direct3D可以直接调用硬件资源,具有很高的执行效率,并提供一个共同的硬件驱动标准,让程序开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。再加之微软在软件行业的影响力,甚至可以预言它将成为3D图形技术的标准。

2.3 插件

通过编程很难制作出高质量的复杂模型,所以这里使用的都是外部导入已经由其他软件建好的模型。x文件就是包含虚拟模型的文件。x文件是使用Pro/ENGINEER建模,然后将模型导入3ds max,再使用3ds max的插件导出高质量x文件。

本设计使用的插件是PandaDirectXMaxExporter.dle,插件的安装方法是将其拷贝到3ds max安装目录下的stdplugs文件夹当中。拷贝完成后可以在3ds max的导出列表中找到导出Panda DirectX(*.X)选项。

2.4 图片图像处理工具

在该软件中,还涉及到图片图像的处理工序。由于三视图中的前试图、主试图、俯视图和四个选项的图片都需要由机械人员在Pro/E中截取,所以要使用截屏工具SnagIt来截取。截取的图片使用PhotoShop进行切割和调整,最后得到合格的图片。

3 客户版块设计

学生使用部分是该软件的核心,软件的主要功能都在这部分完成,按一般使用流程可分为用户登陆、难度选择、试题制作、试题提交、数据传输这五个模块。

3.1 用户登陆

用户登陆主要完成的任务是获取姓名和编号,便于后期成绩和数据管理。由于本系统用户多为青年学生,所以设计采用了较为活拨的颜色作为主题色。

3.2 难度选择

该软件中设置了初级、中级和高级等难度等级。在这三个不同级别中,是根据所软件所涉及的实体模型的难易程度来分级,初级里的模型较为简单,没有太多的边面变化,而随着级别的提升,边面变化增多,难度也逐渐增大。

3.3 试题制作

用户选择试题等级后,从相应的试题库中随机抽取试题组成试卷,供用户练习使用。根据投影原理,物体的三个视图要按照“长对正,宽相等,高平齐”的要求严格对齐方,如果使用常规的对齐方式,很难做到精确。这里使用了Visual C# 2005中的Containers类中的TableLayoutPanel窗口划分工具来进行窗口划分,并通过设置TableLayoutPanel的属性和放在其内的对象属性,实现专业级的布局效果。

3.4 答案提交

在提交答案后,学生可以查看自己的答案和分数,并且可以选择保存自己的全部测试信息到TXT文档,也可以将测试结果上传到教师机。

3.5 数据传输

数据传输需要学生自行输入服务器端的IP地址。设置IP完成后,单击确定按钮即可上传信息数据。

4 服务器版块

服务器端是本软件的一个功能扩展,也是网络教学的一个雏形,具有比较长远的前景。

4.1 数据接受和数据导入数据库

服务器首先要实现从客户端接受学生的测试信息的功能。接受数据只需在程序中实现,并不需要为老师的使用给出接口。老师只需到服务器端的网络更新数据中查看已经上传的学生数据,然后将其转入数据库。

4.2 数据统计和筛选

在服务器端,为教师提供了各种查询的接口。教师可通过数据信息窗口,设置查询的限制条件,从而实现对数据的统计和筛选。

5 Direct3D构建虚拟场景的原理

5.1 虚拟场景的组成

Direct 3D中所有的虚拟对象都包涵在设备对象Device里面。其中虚拟世界World、虚拟灯光Light,虚拟摄像机View是相对独立的三个部分。World负责装置所有的虚拟物体,虚拟灯光负责像地球以外的太阳一样,给World提供光照,View就像是一部架在宇宙中的摄像机,可以从远处来观看地球。其树状图如图4所示。

如同地球的可以自转和公转,这里的虚拟World也具有自身选择角度的Device.Transform.World属性。通过改变device.Transform.World的参数来实现虚拟世界的旋转控制。

这里World、Light、View三个对象的属性改变时都会影响到Device渲染出图像的整体效果。

5.2 三维交互流程图

在本设计中,主要分为几个模块来实现三位交互,如图5所示。

5.3 鼠标实现三维交互操作

使用按下鼠标左键拖动的方式来实现对象的旋转,使用按下鼠标右键拖动来实现缩放物体。效果如图6所示。

图6 旋转效果图

6 结论

本文以三视图训练系统的开发为线索对三维交互技术在交互式教育软件中的应用进行了全面分析。本设计完成的三视图训练系统只是交互式教育软件中的一个典型代表,在此基础上拓展,可以开发出更多的交互式教育软件,如虚拟模型展示系统以及虚拟产品装配系统等。这些系统不但可以大大降低实物模型带来的场地占用,还可以大大节省节购物开支。用户可以随时在电脑上反复训练,操作简单方便,效果良好。可以预计,交互式教育软件必将在未来我国各级教育领域中大显身手。

此外,随着电子商务的发展,传统的商品展示方式已经远远不能满足人们的需求,一个产品很难用一组图片或一段文字来表现,特别是对外形要求很高的商品。三维交互技术在网络方面的应用和发展将弥补这一缺陷,并能为电子商务的再发展奠定坚实技术基础。

[1] 样小强,杨雪.三维交互技术在虚拟试验中的应用[D].吉林大学,2007.

[2] 周源,王琨.机械产品三维交互性仿真控制的实现[D].江西理工大学,2007.

[3] 姬洪强.浅谈虚拟实现技术在学科教学中的应用[D].浙江师范大学,2007.

[4] 王朝晖.虚拟现实在电子商务中的应用展望[D].苏州大学计算机学院,2006.

[5] 胡卫红.虚拟现实技术在教育教学中的应用与研究[D].山东体育学院,2006.

[6] 王旭升.虚拟现实技术的发展及其应用探索[D].义乌工商职业技术学院,2007.

[7] 罗晓翔.网络虚拟商品三维展示系统的研究与设计[D].广东商学院,2007.

[8] 隆岩.探讨三维虚拟现实技术在高校试验教学中的应用[D].江西教育学院,2007.

[9] 张永芳,郭东军.虚拟现实技术在教育中的应用[D].陕西延安大学,2007.

[10] 钟毅.浅析虚拟现实技术在计算机专业教育中的应用[D].江西省人口信息中心,2007.

[11] 和莉,刘惠义.碰撞检测技术在三维交互漫游系统中的应用[D].河海大学计算机及信息工程学院,2006.

[12] 魏尊亮.VRML在三维交互式虚拟场景中的应用[D].广东工业大学,2007.

[13] Burdea G.Virtual Reality System and Applications[C].Electro93 International Conference,1993.

[14] Counsell J.3D Built Form and Landscape from 2D Maps[J].Habitat,1998.6.

[15] Huang B,Lin H.GeoVR:a Web-based Tool for Viretual Reality Rresentation from 2D GIS Data[J]Computers &Geosciences,1999.10.

[16] www.baidu.com

[17] www.cqvip.com

[18] http://baike.baidu.com/view/15762.html?wtp=tt.

猜你喜欢
交互技术三视图虚拟现实
体感交互技术在脑卒中康复中的应用
虚拟现实技术在中学校园中的应用
虚拟交互技术系统的优势与应用分析
割补法在三视图还原空间几何体中的应用
智能语音交互技术在媒体的应用和前景
VR交互技术在中小学拓展课程中的应用
借助长方体巧解棱锥的三视图问题
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
三视图题型例析