石油工程论文_第1页
石油工程论文_第2页
石油工程论文_第3页
石油工程论文_第4页
石油工程论文_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I 目 录 第 1 章 概述 . 1 1.1 系统开发背景 . 1 1.2 系统开发的方法 . 2 1.3 系统开发的意义 . 2 第 2 章 系统开发工具 . 3 2.1 3DS MAX 建模工具 . 3 2.2 Virtools Dev 开发工具的介绍 . 5 第 3 章 油田起油管操作考评系统分析 . 8 3.1 需求性分析 . 8 3.2 设计性分析 . 8 3.3 系统功能模块图 . 9 3.4 程序流程图 . 10 第 4 章 三维场景和物体模型的建立 . 12 4.1 三维模型与贴图的限制 . 12 4.3 模型的转换 . 14 4.4 模型导入到 Virtools . 20 4.5 模型导入到 Virtools 后黑的原因 . 21 第 5 章 考评系统的实现 . 22 5.1 菜单选项的实现 . 22 5.2 系统操作的实现 . 23 5.3 测试系统 . 28 结 论 . 29 参考文献 . 30 致 谢 . 31 1 第 1 章 概述 1.1 系统开发背景 1.1.1 虚拟现实技术 虚拟现实,或虚拟实境( Virtual Reality, VR),也称为灵境技术或人工环境,是以沉浸性、交互性和构想性为基本特征的计算机高级人机界面。 VR 综合利用了计算机图形学、仿真技术、多媒体技术、人工智能技术、计算机网络技术、并行处理技术和多传感器技术,模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在 计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。使用者不仅能够通过虚拟现实系统感受到在客观物理世界中所经历的 “ 身临其境 ” 的逼真性,而且能够突破空间、时间以及其他客观限制,感受到真实世界中无法亲身经历的体验 1。 VR 技术具有超越现实的虚拟性。虚拟现实系统的核心设备仍然是计算机。它的一个主要功能是生成虚拟境界的图形,故此又称为图形工作站。目前在此领域应用最广泛的是 SGI、 SUN 等生产厂商生产的专用工作站,但近年来基于 Intel奔腾 ( 代)代芯片的和 图形加速卡的微机图形工作站性能价格比优异,有可能异军突起。图像显示设备是用于产生立体视觉效果的关键外设,目前常见的产品包括光阀眼镜、三维投影仪和头盔显示器等。其中高档的头盔显示器在屏蔽现实世界的同时,提供高分辨率、大视场角的虚拟场景,并带有立体声耳机,可以使人产生强烈的 沉浸 感 2。其他外设主要用于实现与虚拟现实的交互功能,包括数据手套、三维鼠标、运动跟踪器、力反馈装置、语音识别与合成系统等等。虚拟现实技术的应用前景十分广阔 , 它始于军事和航空航天领域的需求,但近年来,虚拟现实技术的应用已大步走进工业、建筑设 计、教育培训、文化娱乐等方面,它正在改变着我们的生活 3。 1.1.2 系统开发的需求 在油田作业过程中使用到的油田自动化抽油设备包括:抽油机、油管、井口等,这些设备在长期的使用过程中,可能受到磨损、或是赃物堵塞等原因,需要进行定期拆卸、维修和清洗,然而操作危险性很大,一旦操作不当就可能会造成重大经济损失或人员伤亡。 为了减少油田的经济损失,避免不必要的人员伤亡,所以需要开发小修作业 2 仿真操作系统,这是一个虚拟训练和操作考评系统,使员工在虚拟的场景中有身临其境的感觉,通过人机交互的方式学习、训练操作技术,旨 在减少操作过程中的危险性,提高员工的实际安全操作能力,进而提高油田安全生产的实践水平。整个系统包括设备的拆卸、维修,以及清洗几个部分,本文主要是针对拆卸过程中起油管这一关键操作,开发的油田 起油管操作考评系统 ,是小修作业仿真操作系统中的一个子系统。 1.2 系统开发的方法 油田 起油管操作考评系统是利用 3DS MAX 和 Virtools 三维交互开发工具共同开发的系统。在熟悉系统流程后,利用 3DS MAX 软件进行精细和精简建模,建立起油管操作考评 系统 的油管 、 吊环 、 吊卡 、 大钩 、 液压钳等模型,并建立操作场景。 基于 Photoshop 软件制作相应的工具、天空、地面等场景的贴图。这样就建立出 了 逼真的立体模型。利用 3DS MAX 的导出插件 3DS MAX Exporter for Virtools 把制作好的 3D 模型导出 , 导入到 Virtools 中,并在 Virtools 中设置好场景。 进一步 结合现场场景需求设计流程 , 利用 Virtools 为 三维场景以物体进行驱动编程, 建立脚本并加入相应的 Building Blocks 完成相应的动作,实现操作系统 ,最终把设计好的操作系统导出为 Web 应用程序。 1.3 系统开发的意义 虚拟现实的仿真培训系 统主要为油田常见的、易发生操作事故 的环节而设计 ,能为生产操作过程提供一套交互的安全操作仿真平台,使安全操作的培训更加易于接受,既节省人力物力又效果明显,从而大大提高油田安全生产的管理水平和实践水平。通过该系统的应用,可以使受训人员既能进行知识学习又能进行技能训练 ,不仅降低了传统培训 实际 操作的危险,而且节省人力物力,也 减少 了不必要的损失,收到了良好的效果。 同时 还能使这些环节联系更加密切,使受训员工对于 每个部分 都 深入了解,往往能学到现实当中无法接触的东西。既能为员工提供学习知识的机会,又能为 他们提供提高技能的场 所。 3 第 2 章 系统开发工具 2.1 3DS MAX 建模工具 2.1.1 3DS MAX 简介 3D Studio MAX,常简称为 3DS MAX 或 MAX,是 Discreet 公司开发的(后被 Autodesk 公司 合并), 基于 PC 系统的三维动画渲染和制作软件。其前身是基于 DOS 操作系统的 3D Studio 系列软件,最新版本是 2010。在 Windows NT 出现以前,工业级的 CG 制作被 SGI 图形工作站所垄断。 3D Studio MAX + Windows NT组合的出现一下子降低了 CG 制作的门槛,首选开始运用在电脑 游戏中的动画制作,后更进一步开始参与影视片的特效制作,例如 X 战警 II,最后的武士等 4。 在应用范围方面,广泛应用于广告、影视、工业设计、建筑设计、多媒体制作、游戏、辅助教学及工程可视化等领域。拥有强大功能的 3DS MAX 被广泛地应用于电视及娱乐业中,比如片头动画和视频游戏的制作,深深扎根于玩家心中的劳拉角色形象就是 3DS MAX 的杰作。在影视特效方面也有一定的应用。而在国内发展的相对比较成熟的建筑效果图和建筑动画制作中, 3DS MAX 的使用率更是占据了绝对的优势。根据不同行业的应用特点对 3DS MAX 的 掌握程度也有不同的要求,建筑方面的应用相对来说要局限性大一些,它只要求单帧的渲染效果和环境效果,只涉及到比较简单的动画;片头动画和视频游戏应用中动画占的比例很大,特别是视频游戏对角色动画的要求要高一些;影视特效方面的应用则把 3DS MAX 的功能发挥到了 极致 5。 最初的 3D Studio 产品由 Yost Group 为 DOS 平台制作,由 Autodesk 发行。Autodesk 从第二版开始买下接下来两个版本的标志和内核开发。在 3D Studio Release 4 后,产品转到 Windows NT 平台,名字改为 “3D Studio MAX”。此版本还是 Yost Group 制作,由从 Autodesk 拆分的 Kinetix 发行。稍后,产品名称改为 “3ds max”,为了符合位于蒙特利尔的 Discreet 公司的命名标准。之后 Discreet 被Autodesk 收购,在第八版产品又重新打上 Autodesk 的标志,名称又变为 “3DS MAX” 6。 2.1.2 3DS MAX 的应用领域 该软件应用领域非常广泛: 1) 建筑可视化与虚拟现实( architectural visualization) 4 在国内发展的相对比较成熟的建筑 效果图和建筑动画制作中, 3DS MAX 的使用率占据了绝对的优势。根据不同行业的应用特点对 3DS MAX 的掌握程度也有不同的要求,建筑方面的应用相对来说要局限性大一些,它只要求单帧的渲染效果和环境效果,只涉及到比较简单的动画。 2) 游戏制作( video game) 主要客户有 EA、 Epic、 SEGA 等,大量应用于游戏的场景、角色建模和游戏动画制作。深深扎根于玩家心中的劳拉角色形象就是 3DS MAX 的杰作。 3) 电视广告( TV commercial) 3DS MAX 在国内的广告制作领域也有一定的运用,尤其被 大量使用在中等档次的电视广告片中。 4) 电视包装( TV packaging) 拥有强大功能的 3DS MAX 被广泛地应用于电视包装制作领域。 3DS MAX 操作简单,反应迅速,拥有简单而高效的粒子流系统,拥有众多高质量的渲染器,在国内被电视包装行业的从业人员大量使用。 5) 电影、电视剧特效与脚本预览( movie effects &movie pre-visualization)随着 3DS MAX 功能的不断完善,不少电影制作公司也开始注意到它。例如在著名的后天、功夫等等影片中都有可以看到利用 3DS MAX 加工过的镜头。当然, 3DS MAX 要在电影领域大显身手显然还需要一定的时间。当然, 3DS MAX为国内电视剧制作的特效镜头就数不胜数了。 6) 工业设计及教学辅助( industrial design And Assisted Teaching) 由于 3DS MAX 在建模和渲染方面性能的大幅提升,有些公司也开始使用3DS MAX 作为工业设计的辅助工具。例如油田的某些项目用 3DS MAX 来建立基本的模型。 3DS MAX 拥有完整而方便的动画工具,可以方便地制作各种演示动画,吸引学生的学习兴趣,提高教学成绩。 例如机械设计、物理、化学、岩石矿物学等学科的教学都大量采用了 3DS MAX 制作的演示动画,有些公司的培训项目也大量的使用 3DS MAX 所制作的培训演示动画 7。 2.1.3 3DS MAX 的特点 3DS MAX 系统拥有许多优良的特性,具体包括: 1用户界面提供了强大的灵活性和工作能力; 2多操作系统支持,系统在 Windows 9x 、 Windows XP 上都可以运行; 3造型命令和编辑修改命令,功能相当强大; 4多线程渲染( Rendering); 5气象万千的材质编辑器( Material Editor); 6 方便控制和编辑动画顺序的对话框( Track View); 5 7支持核心构件插入技术( Core Component Plug-In); 8功能强大的编辑调整器堆栈; 9 HEIDI 阴影显示技术,可以在实时阴影环境中工作; 10有很多的第三方插件可供利用 8。 2.2 Virtools Dev 开发工具的介绍 2.2.1 Virtools 简介 Virtools 是属于法国达索公司所有的虚拟现实开发平台,它丰富的行为交互模块可以使非专业的程序开发人员快速地创建自己的三维数字产品,系统不仅提供了 自带的渲染引擎,而且允许用户根据自己的需要进行自定义,另外,为了便于网络的应用,还有相应的网络播放器。 Virtools 中 已 集成有 400 多个BuildingBlock 模块 (简称 BB 模块 ), 通过 BB 模块的组合与定义,以及 attribute属性等辅助工具,能够进行脚本的编制,可以满足一定程度上的开发需求。同时,系统拥有自己的脚本语言 VSL,其语法和 C+极其相似,便于习惯使用脚本的程序员进行开发。最重要的是, Virtools 的 SDK(Software Development Kit)开放了行为引擎和渲染引擎的接口 ,使用户可以编写新的行为模块或对 已 存在模块进行修改,以及增加参数类型,修改渲染引擎等,来达到开发的需求 9。 本次考评系统所使用的是 Virtools Dev 4.0 版本, Virtools 4 的开发架构体系支持多种 3D 文件格式。 Virtools 提供的 3D 内容转换插件,支持主流的 DCC(Digital Content Creation,数字内容创建 )软件格式 (3ds Max、 Maya、 XSI、 Lightwave、Collada), Virtools 还可以直接导入和输出 3D XML(达索系统标准的工业文件格式 ), 从而使 real-time 3D 作品的技术制作变得更加方便和高效。 2.2.2 Virtools 4 中的关键组件举例 1.GUI(Graphical User Interface,人机交互图形化用户界面 ),以可视化的编辑方式,流程图的思维模式,进行对象和脚本设计工作,有效的减短了作品的制作周期, Virtools 4 开发平台的 GUI(人机交互图形化用户界面 ),包含下列内容: (1)3D Layout(实时 3D 编辑器 )用来显示 Realtime3D 实时渲染环境的内容。 (2)图形工具条,用来进行作品中 3D objects(3D 对象 )、 lights(灯光 )、cameras(摄像机 )和 curves(曲线 )的导航、创建、编辑、选择和操作。 (3)新建和编辑 lights(灯光 )、 cameras(摄像机 )、 materials(材质 )、 textures(纹理贴图 )、 grids (栅格 )和 paths(路径 )。 (4)在一个虚拟环境中,进行 3D entities (3D 实体 )的 Translation(位移 ), rotation(旋转 ), scale (缩放 )操作及作品导航。 6 (5)behaviors 交互脚本以鼠标拖放形式, 赋予 2D 和 3D 对象。 (6)behaviors 交互脚本完成一定的功能后,可以打包或者合并的方式,保存起来,供我们重复使用。 (7)图解式的 building blocks 脚本编辑模式,有助于我们便捷有效地创建互动内容作品。 (8)Script Debugger(脚本调试器 )可以用来对应用程序进行优化。 (9)Entity Setup Tools(实体设置工具 ) 用来对任一对象及其关联脚本的参数编辑。 (10)Attribute Manager(属性管理器 )用来快速地设置和修改多个对象属性数值。 (11)Action Manager(操作管理器 )用来编写常用的一些函数 ,以快捷键的方式,来执行一些预定义的操作或者创建任务。 (12)Hierarchy Manager(层级关系管理器 ) 以树形结构的方式来显示所有对象之间的父子关系。 2.Behavior Engine 脚本引擎用来运行互动应用程序,可以运行内置或者自定义的 behaviors 脚本。 Virtools 4 基本的互动脚本涉及以下的类别: Cameras(摄像机 )、 Characters(角色 )、 Collisions(碰撞 )、 Controllers(控制器 )、 Grids(栅格 )、 Interface(界面 )、 Lights(灯光 )、 Logics(逻辑 )、 Materials- Textures(材质和纹理 )、 Mesh modifications(模型结构的修改 )、 Narratives(作品故事相关 )、 Optimizations(优化 )、 Particles(粒子 )、 Sounds(声音 )、 Shaders(着色器 )、 Visuals(视 觉特效 )、 Web(网页 )、 World Environments(虚拟环境 )。利用Virtools SDK 的 Behavior Pack 脚本源代码文件包或者第三方脚本,我们可以对Behavior Library 脚本库进行功能扩充。 3.Render Engine 渲染引擎以实时渲染的方式来显示图形图像,它包含有如下的功能: (1)支持国际产业标准: DirectX 和 OpenGL。 (2)支持可编程 Vertex 顶点和 Pixel 像素的 Shaders 着色技术 (DX9.c, OpenGL 2.0, HLSL, CgFX, Shader Model 3)。 (3)支持 3D 模型对象和动作(通过 3ds Max, Maya, XSI, Lightwave 和 Collada插件导出)。 (4)提供与 render engine 渲染引擎相关的源代码。 4.Virtools Scripting Language 脚本语言以代码的方式,进行一部分的编程开发,优化脚本,提高效能,并可以在 Virtools 4 的 Schematic editor 图形脚本编辑器中,提供脚本关键字智能颜色显示 (intelligent coloring system)、 自动上下文区分提 示 (context-sensitive completion)及函数参数显示 (function arguments display)功能,可以进行相应的 code 代码编写与运行,提高脚本的执行效率,完成部分 7 SDK 的功能。 除了用于脚本互动部分的撰写与运行, VSL 还可以用于创作模式下的操作功能的扩展,提升 Virtools 本身开发环境的制作效能。 VSL 提供了完整的 Debug 调试功能,支持脚本运行的 breakpoint 中断点,变量和数值编辑的监测,及步进脚本的 Debug 调试 (支持调试的 step into/ out 模式 )8。 5.SDK (Software Development Kit,软件开发工具包 ) Virtools 的 SDK 是一套软件开发工具 (包含 有 libraries 库文件, DLLs 文件, header 头文件 ),提供了 Virtools 软件的所有底层函数,用来创建自定义的脚本和应用程序,以及对 Virtools 本身的功能进行扩充。开发者可以使用它进行下述的应用程序的工作: (1)利用 Virtools 引擎,制作自定义的可执行应用程序。 (2)对 Virtools 引擎进行功能扩充,比如 Behaviors 互动脚本,媒体文件的导入插件, Manager 管理器, Render Engines 画面实时渲染显示插件, Rasterizer 图像光栅 和其它的功能 插件 (指定的 Parameter Types 参 数类型 )等等。 2.2.3 Virtools 的前途与发展 Virtools 制作具有沉浸感的虚拟环境,它对参与者生成诸如视觉、听觉、触觉、味觉等各种感官信息,给参与者一种身临其境的感觉。因此是一种新发展的、具有新含义的一种人机交互系统。 目前全世界有超过 270 所大学使用 Virtools ,它 已经获得许多媒体技术学系学生的肯定和支持 。 Virtools 主要经由一个设计完善的图形使用者界面,使用模块化的行为模块撰写互动行为元素的脚本语言。这使得使用者 能够快速地熟悉各种功能,包括从简单的变形到力学功能等。 Virtools 可以制作出许多不同用途的 3D 产品,如网际网络、计算机游戏、多媒体、建筑设计、交互式电视、教育训练、仿真与产品展示等 。 许多大型游戏制作公司,例如 EA 和 Sony Entertainment,都使用 Virtools 来快速地制作游戏产品的雏形。而且还有很多游戏是从头到尾都用 Virtools 进行开发的。中国大陆的 Virtools 的应用刚刚起步,但是前景十分看好,水晶宫和奇士等公司已经开始应用。 8 第 3 章 油田起油管操作考评 系统 分析 3.1 需求性分析 基于虚拟现实技术平台设计的这套起油管操作考评系统,是以真实场景的比例为基础的一套演练和考核系统。原因在于大型的油田单位不能给员工提供大量的实际操作练习机会,因为这样不仅仅会消耗员工大量的时间,在操作过程中也存在很大的危险性,消耗大量的人力、物力和财力。这就凸显了我们制作的这套操作演练考评系统的重要性。由于此项操作系统主要是以油田员工为主要使用者,所以对于使用者而言,可能会对网页开启和加载的时间以及画面的流畅度较为重视,因此在对 3DS MAX 所建立的模型的精细程度进行取舍时,尽量使场景内所有对象的 总面数保持在 100000 以内,对于不必要的面数进行删减,但同时也要控制好场景内物体的真实程度。同时还希望将系统的图片和声音文件加以压缩,以节省读取画面的时间,并在贴图的画质上做适合的取舍,让使用者可以有身处真实场景的感觉。 另外,在使用本操作系统的时候,考虑到使用者可能是未使用过设备的新员工。因此,我们在操作过程中加入了设备拾取的功能,以文字信息的形式提示各个设备的名称,并提示各个步骤的正确操作,使员工尽快熟悉环境,迅速地投入到实际工作中。 我们利用虚拟现实技术的特性,使得员工有身临其境的真实感,使安全操作 的培训更加生动、逼真、易于接受,达到寓教于乐的效果,从而大大提高油田安全生产的效率与水平。 3.2 设计性分析 油田起油管操作考评系统(简称考评系统)既可以对操作过程进行演练,又可以对员工的操作技能进行综合考核,所以对设计性分析的要求很高。我们首先分析系统的需求与流程,使用建模工具对场景中涉及到的物体进行一一建模,为我们实现系统做好“物质”准备,再通过设计交互动作与动画等等,最终在 Virtools中设计程序流程,实现考评系统。所以从设计的角度来讲,起油管操作考评系统包括两个部分:三维场景的建立和对三维场景及物 体的驱动编程。整个系统设计流程如下: 一、三维场景的建立 9 1、运用三维场景建模工具 3DS MAX 建立油田起油管操作场景的三维模型,包括建 立 抽油机、作业机、油管、吊卡、液压钳、大钩等几何模型。 2、将各个几何模型组合成为三维场景。 3、三维场景及物体的导出。 二、三维场景的驱动 1、打开 Virtools 工具,导入所有模型和场景,调整添加渲染控件等,为接下来的渲染、交互设计工作做必要准备。 2、为操作界面添加菜单功能,可以自由选择操作视角、操作工具、以及背景音乐控制等,我们只需用二维帧来实现。 3、通过分析动作 ,把整个操作过程分解,分步分模块设置脚本动作等。 ( 1)首先引入主场景,提示操作开始,并将操作场景拉近,开始操作,此时每一步操作有相应的文字提示信息。 ( 2)班长给出手势信号,提起大钩,带动吊环上升一定高度,以便吊起油管。 ( 3)将升起适当高度的吊环吊住吊卡,提起大钩带动一端油管提升到地平面部分。 ( 4)使用吊卡工具卡住下方的第二根油管,并将吊卡牢牢卡好。 ( 5)使用液压钳工具,卡住两油管相接处的螺母,安装完毕启动液压钳开关。卸开螺丝连接部分,收起液压钳。 ( 6)由班长发出完毕命令,并示意操作员提起大钩。 ( 7)带动取下油管将提起的油管可动的一端放在一侧的滑轮上,放下油管,会自动滑动到安放油管的架子上。 ( 8)每一步操作都会计算分数,对于分数的处理是在每一步操作中同时处理的。 ( 9)操作过程中应该含有对错误处理的提示,以及正确操作的演示过程。 ( 10)另外为了增强场景的交互真实性,我们还设置了自由行走的功能,可以更具键盘的操作,来自己行走于整个场景,包括前后、左右以及上下、旋转等等。 4、系统设计结束后,使用 Virtools 中的 Play 功能测试系统的操作,在演示及手动操作的过程中,对系统进一步完善,达到理想的 效果。 5、测试系统可以正确流畅使用后,以 .COM 和 .HTML 的文件格式导出,完成整个操作系统的制作。 3.3 系统功能模块图 油田起油管操作考评系统具有可交互操作功能,为用户提供了一个可实际操 10 作的环境。为了实现上述操作,我们从功能上将其分解为两大类功能:菜单选择和操作实现。详细的系统功能模块图如图 3-1 所示。菜单栏中包括了位置选择、工具选择、背景音乐和退出系统四大部分,其中位置我们使用了自由视角和操作视角两种;考评系统重点用到了吊卡和液压钳等工具。在系统操作实现部分,我们分为鼠标触发事件,设备跟随、相机的 移动,设备识别以及操作计分等操作步骤。 图 3-1 考评系统功能模块图 3.4 程序流程图 系统开始运行后,会提示操作考评已经开始,请认真操作。系统主要为了方便员工尽快熟悉操作工具以及起油管正确操作步骤,在每一步的操作进程中,都会有文字信息提示。为了更具有交互性,我们 提供了错误操作时的两种选择,跳过该步操作或者是观看系统该步操作的正确操作过程的演示。系统秉着准确、可交互的原则来实现,操作程序流程图 3-2 所示。 11 开始结束第一步操作显示操作过程记录操作信息第二步操作显示操作过程记录操作信息最后一步操作显示操作过程记录操作信息计算并显示考评分数跳过跳过跳过是否正确是否正确是否正确观看正确操作还是跳过观看正确操作还是跳过观看正确操作还是跳过观看正确操作观看正确操作观看正确操作否是跳过跳过跳过否是是否 图 3-2 考评系统程序流程图 12 第 4 章 三维场景和物体模型的建立 4.1 三维模型与贴图的限制 使用 3DS MAX 软件制作出场景所需物体的三维模型,采用适当格式的贴图给设备模型附加贴图后,导入到 Virtools 中进行交互操作的设计,以下是 Virtools对于模型的限制: 一、模型必须是“ editable mesh”形态的 3D 模型才能导入到 Virtools 中去。可供输出的 3D 模型资料如下: (1)基本模型资料 (2)贴图坐标的设定 (3)Smoothing Groups 的关系设定 (4)Hierarchy 从属关系的设定 (5)Show/Hide Flag 显示隐藏的设定 (6)如果 Wrapping settings 的输出不正确,可以利用 Virtools 的行为模块“ Set Wrap Mode”来改善词问题 (7)Vertex Color 二、贴图,贴图的来源是亲自到现场将有关的设备外观用数码相机拍下来,力求精细,最后利用 Photoshop 对图片做适当修改。 Virtools 可以接受的贴图尺寸的长与宽最好使用 2 次方像素(如 2、 4、 8、 16、32、 64、 128、 256 Pixels,也就是说 16 16、 16 32、 32 64 或 64 128)尽量减低贴图大小,并且使用 16bit 或 24bit 的图形格式(不可以使用 8bit或 32bit的图形格式),可供输出的材质资料如下: (1)Diffuse 的贴图,贴图的色彩将会因为这个材质的颜色而改变,除非颜色值为( 255, 255, 255)的白色。 (2)U, V 轴向的重复贴图或镜射贴图(镜射贴图视显卡的效能而定)。 (3) 自我发光的物体可以利用 Virtools 里的 Emissive 值来调整。 (4) Ambient Color (5) Specular Color (6) 双面材质的设定 (7) 透明度的设定 4.2 三维模型的制作 在考评系统中,三维物体及场景的建立是“物质”基础。本系统主要需要建 13 立抽油机、作业机、井口,油管、各种工具以及天空和地面等三维模型。本章只以抽油管和吊卡为例简单介绍三维模型的构建过程。下面介绍三维模型建立的注意事项、模型制作、模型导入以及导入后的问题等几个内容。 4.2.1 模型制作的注意事项 为 了降低模型的面数,制作模型的过程中应尽量避免使用 Boolean 与 3DS MAX 里提供的 Windows 物件,而改用贴图的方式让模型外观看起来更真实。此外,将看不到的面删除,面与面重叠时也应将重叠的面删除 5。 4.2.2 部分三维模型的建立 一、抽油管 抽油管是由三部分组成的,中间的油管部分以及两头的螺丝及螺母部分,如图 4-1 所示。 图 4-1 左侧为螺丝部分,右侧为螺母部分,中间由油管连接 创建一个管状体有很多方法,包括圆环的挤出、两个圆柱体的布尔操作,但是最简单便捷的就是直接使用 3D MAX 提供的圆环管状体 的创建工具,本系统使用的就是这种方法。创建好管状体,调整其大小半径,包括螺母部分,需要注意的是,螺母部分的圆环半径要和油管外半径相接。油管的螺丝接头采用的是 UV贴图处理,选中位图类型的螺丝贴图,将其指定给选中螺丝部分;组合后即为我们所需要的抽油管模型,在编辑器中为其选择一个材质球,调整环境光和漫反射中的 RGB、色调、饱和度和亮度值为适当,将其材质指定给油管组,存储后导入到 Virtools 中待使用。 二、 吊卡的组建过程 在顶视图上制作一个半径 1 为 85,半径 2 为 65,高度为 150,边数为 12 的管状体,启动切片启 用,设置为 270,用旋转工具将其旋转到最佳位置,同理制作出另外两个管柱体,半径 1 分别是 65 和 50,半径 2 分别是 50 和 40,高度为150,边数同为 12;另制作一个圆柱体,半径为 5,高度为 180,边数为 12,并复制一个;接着在前视图中制作一个长为 150,宽为 120,高为 30 的长方体,和一个半径为 50,圆角为 90 度,高度为 50 的六棱柱以及一个长为 43,宽为 35,高 14 为 100 的长方体,并先将其与较小的长方体进行布尔操作,后与六棱柱进行布尔操作,然后复制一个,最后将所有建好的模型命名 diaoka01 至 diaoka07, 并成组,组名为 diaoka,其材质命名为 diaokahuise。 图 4-2 吊卡模型图 4.3 模型的转换 4.3.1 3DS MAX 模型转换注意事项 可从 3DS MAX 输出转入到 Virtools 中的所有数据如下所示: (1)模型数据:已经转为 editable mesh的 3D 模型。可供输出的 3D 模型数据如下:基本模型数据。贴图轴的设定。 Smoothing Groups 的设定。 Hierarchy从属关系设定。 Show/hide Flag 显示隐藏的设定。如果 Wrapping settings 的输出不正确,可以利用 Virtools 的行为模块 Set Wrap Mode 改善此问题。 Vertex Color。 (2)材质资料: 3DS MAX 的标准材质数据以及 multi/sub-object(同一对象、复合材质数据)。 可供输出的材质数据如下: Diffuse 的贴图。 Diffuse:贴图的色彩将会因为这个材质颜色而改变,除非颜色值为 (255,255,255)的白色。 U、 V 轴向的重复或镜射贴图( Tiling and mirroring on U and V):镜射贴图将视显示卡的效能而定。自我发光体可利用Virtools 里的 emissive 值来调整 (Virtools emissive 值可以在材质的设定页 Material Setup 中找到 )。 Ambient Color。 Specular Color。双面材质设定( 2-Sided Flag) 。透明色设定( Transparency)。 (3)灯光:所有 3DS MAX 的标准灯光,如 FreeSpot, Target Spot, Omni, Target 15 Direct, Free Direct 等。 可供输出的灯光数据如下: 开 / 关设定。灯光颜色。照射范围 ( 设定灯光范围的Attenuation/Far/End等数据 )。 Affect specular的设定。特殊灯光参数设定。聚光灯:聚光灯的 Fall Off 值的设定。平行光: 3DS MAX 可以使用圆柱线条来设定平行光的范围,但在 Virtools 里并无法设定平行光的范围,一旦有平行光将会完全照射整个场景。 (4)摄影机:所有 3DS MAX 设定好的摄影机,如 Target 或 Free 的摄影机。可供输出的摄影机数据如下: 3DS MAX 摄影机的参数只有 FOV 可供输出。 (5)Dummy:接受 3DS MAX 的 Dummy 虚拟对象。 (6)动态数据: TCB 格式、 LINEAR 或 Bezier 的动态数据。 可供输出的动画参数数据如下: 只有在 3DS MAX 里的 TCB、 LINEAR 或 Bezier 的位移、旋转、大小等动态数据可以输出至 Virtools。为了将正确 地输出动态数据,母对象(群组最高层级的对象)的位移、旋转、大小三种动态数据的起始点与终点一定要设定在时间轴的范围里。 Virtools 的每一段动画的旋转范围并不允许有超过 360度的数据,因此在 3DS MAX 里若有超过这个范围的旋转动画请予以切割成可允许的旋转范围里。 (7)曲线数据:在 3DS MAX 里做制作的 Shape将会转成 Virtools 的 Curve (Virtools 的专有名称 )。 可供输出的曲线数据如下: 在 3DS MAX 所制作的曲线( Spline)将会在输出成 Virtools 档案时,只有点的数据 会被保留,并且转为 Virtools的 Curve( Virtools 的专有名词)。 (8)群组资料:在 3DS MAX 所定义的群组数据( Groups)。 可供输出的群组数据如下 : 在场景输出( Scene Export)模式下,使用 Dummy 来当整个对象群组的母对象( parent object)时,这个 Dummy 将会依照群组的从属关系转成 Virtools里的 Frame( Virtools 的专有名词) 。为了能够正确地输出群组数据,必须在 3DS MAX 里将群组( Group)打开,成为开放式群组( Open Group)。不 过在动画输出( Animation Export)模式,将不支持 Dummy 的输出,所以请避免使用群组。 (9)3DS MAX 模型 Reset XForm 部分: 为了正确而完整的输出所有 3DS MAX所制作的模型到 Virtools 里,在设定从属关系和制作动画制作之前必须将所有的模型作 Reset XForm。设定方式如下: 制作所需的 3D 对象。将物件 Reset XForm: (a):选择所有对象( Select all objects)。 (b): 选择 3DS MAX 里最右边的 Utility菜单中的 Reset XForm功能。 (c): 执行 Reset Selected。 (d): 确认 3D 对象里,面的方向 (normal)是正确的。 (e): 先将 3DS MAX 的档案储存起来,以供之后使用。最后再进行从属关系的设定或动态的制作。 4.3.2 3DS MAX 模型的导出 Virtools4.0 for MAX 导出插件主界面图如图 4-3 所示。 16 图 4-3 导出插件主界面 ( 1)基本选项 导出插件基本选项如图 4-4 所示。 图 4-4 导出插件基本选项 Export as Objects: 输出为 3D 物体。 Export as a Character: 输出为一个角色。 17 Export Animation Only: 仅输出动画。 Export Level(produce.cmo): 输出为 Level,在一般情况下这个选项是用来直接将 MAX 场景导出为 CMO 文件的。 (这里需注意的是,输出插件 3 种输出格式 NMO、 CMO、 VMO,当选择这 个选项导出为 NMO 后,在 Virtools 导入时会做为一个没有名字的 Scene 导入。 ) Character Name:角色的名字,当导出角色时可用。 Animatiion Name:动画的名字,当导出动画色可用。 Starting Camera:当导出为 Level 可设置场景初始相机。 ( 2)一般选项 导出插件一般选项如图 4-5 所示。 图 4-5 导出插件一般选项 Export selection groups as places: 将 MAX 中的组 (Groups)导出为 Places. Rescale Scenes unit: 重设场景单位, 将场景导入 VT 时重设场景单位为米。 Hide Helper Objects: 隐藏辅助物体 ,MAX中的辅助物体在导入 Virtools 后默认为隐藏状态。 File Compression Level: 导出文件的压缩级别,从 0 到 9 压缩级别越高文件越小。 Detect and Share identical: 资源共享,这里可以设置共享动画、 Mesh、材质和贴图。(这个功能也很好用,以前在 MAX 中只有用 Instance 方式复制的关联物体才可以共享 Mesh,现在只要两个物体的 Mesh 数据是一样的(比如顶点数,顶点 位置),只要勾选这里的 Mesh 选项,导出后两个物体也会共享一个 Mesh。其它的动画,材质和贴图也是一样的,只在数据一样就会在导出时共享一个 11。 ( 3) 3D 物体选项 导出插件物体选项图如图 4-6 所示。 18 图 4-6 导出插件物体选项 Deactivate Mesh Channels: 冻结 Mesh 通道 .在导出 Virtools 后,使物体的 Mesh 通道默认为冻结状态。 Split Mesh by Channel: 按材质通道分割 Mesh 。(只有在多维材(Multi/Sub-Object)中有超过一个合成材质 (Compsite)时才起作用。 Export biped and bones geometry: 导出 Biped 和 Bones(骨骼)为 3D物体。 Export Level of Detail: 导出 MultipleMesh 类型的 LOD 物体。(这里的LOD 物体设置方法为,在主物体同名称的物体的名称后加上 LOD1,LOD2LOD9的后缀,在导出 Virtools 后,主物体将被加上一个 MultiipleMesh 类型的 LOD属性,有后缀的物体将导出为主物体的多个 Mesh。 Export Splines as Dummies: 导出曲线为 3Dframe。 ( 4) 材质贴图选项 导出插件贴图材质选项图如图 4-7 所示。 图 4-7 导出插件材质贴图选项 Export Both Materials of Shell Mtl:导出 Shell 材质 中的两个子材质,不勾选时只导出第一个子材质。 Export Alpha Map(Opacity):导出材质 Opacity 通道中的贴图为 Alpha 通道,如果 Opacity 通道上没有贴图,会复制 Diffuse 通道的贴图会 Alpha 通道。 Store only texture filenames: 只导出贴图的名称到 NMO 中,以别的方式导出时贴图会包含在 Virtools 中,如果你看见空的贴图,请查找你的 Virtools 19 资源厍设置贴图的路径。 Resize textures:重设贴图的大小为 2 的平方数 (Square 勾选后强制贴图的长宽一样 ),这里有三种方式。 1 Nearest Power of 2: 设为最接近的 2 的平方数。 2 Lower Power of 2: 设为低的 2 的平方数。 3 Highter Power of 2: 设为高的 2 的平方数。 Read Channels Seting from file:从 text 文件中读取 Mesh 混合通道设置。 ( 5) 动画选项 导出插件动画选项图如图 4-8 所示 图 4-8 导出插件动画选项 Export Animation:导出动画 ,不勾选就不会导出动画。 Reset character animation s inintial orientation:重设角色动画初始方 向对齐 Z 轴。 Lgnore Single Key Animations: 勾选此项会忽略只有一个关键帧的动画,这个选项在制做角色次级动画时很有用。 Reduce Redundant Keys:跟据给定的域值( Threshold)优化动画关键帧。 Physique conversion: Physique 修改器转换设置。 Convert to Skin 转换为蒙皮动画, Convert to Morph Animation 转换为变形动画。 Sampling Rate for Unsupported: 动画每帧 采样率, Mesh Deformation网格变形 ,3D Transformation 三维变形。 ( 6)报告选项 导出插件报告选项图如图 4-9 所示。 图 4-9 导出插件报告选项 20 Verbose level:详细级别 ,有低,中,高三个级别,级别越高越详细。 Save to file:设置报告保存的文件,默认在导出文件同目录下生成一个名为“ Report.txt”的文件。 4.4 模型导入到 Virtools 打开 Virtools Dev4.0 进行文件的导入,导入的方法如图 4-10 所示。 启动 Virtools Dev4.0,选择上方菜单命令的 Resources(资源) Import File(导入文件),找出并开启刚刚保存 的 NMO 文件,就可以看到在 3DS MAX 中做的模型已经成功的导入到 Virtools 中了,然后对导入的模型进行位置的摆放和排列。 图 4-10 文件导入窗口 把模型导入到 Virtools 中的场景后,需要对各个模型的位置、大小以及角度等参数进行调整。加入灯光后还需要对模型的材质进行调整,以达到逼真的视觉效果。调整过程中需要注意的是:在调整完对象的参数后,需要对模型设置初始值( Set IC),否则的话,当对场景进行 Reset IC 时,各个模型会回到其刚导入到场景时的状态。调整后的场景如图 4-11 所示。 21 图 4-11 调整后场景 4.5 模型导入到 Virtools 后黑的原因 4.5.1 物体材质颜色不正确 方法一: 在 3DS MAX 中,修改 Diffuse Color 的数值,再输出。 方法二: 在 Virtools 开发环境中,开启该物体的 Material Setup,修改 Diffuse 的数值。 4.5.2 物体材质颜色是黑色的 一、 使用灯光的情况下 方法一: 在 3DS MAX 中,确认 Self Illumination 数值为 0,再输出。 方法二: 在 Virtools 开发环境中,开启该物体的 Material Setup,修改 Emissive 的数值为黑色 (R:0 G:0 B:0)。 二、 不使用灯光的情况下 方法一: 在 3DS MAX 中,确认 Self Illumination 数值为 100,再输出。 方法二: 在 Virtools 开发环境中,开启该物体的 Material Setup,修改 Emissive 的数值为白色 (R:255 G:255 B:255)。 22 第 5 章 考评系统的实现 将三维模型及场景导入到 Virtools 环境后,动作的驱动模块是系统的核心部分。下面从两个方面介绍系统的实现:菜单选 项部分和系统操作的实现部分。 5.1 菜单选项的实现 菜单选项包括了位置选择、工具选择、背景音乐和退出系统四大部分,其中位置选择提供了自由视角和操作视角两种方式。下面介绍菜单的制作过程。 1.按钮材质及纹理的制作 首先在 Photoshop 中制作好按钮的三种状态,即一般、鼠标滑过和被点选三种状态。然后把制作好的图片作为纹理导入到 Virtools 当中,在 Virtools 中 创建材质,并把刚才的纹理分别附加到相应的材质上。 2.按钮 2D Frame 的建立 以 Create 2D Frame(创建二维帧)命令创建一个 2D 平面对象,并调整好其位置与大小,然后对其 Set IC 。 3.按钮脚本的实现 为 2D 平面创建一个脚本,在脚本中加入 Push Button 模块。然后在 Push Button的属性面板中设置其相应的按钮三种状态的材质。如图 5-1 所示。 4.其它按钮的制作 按以上同样的操作,为每一个按钮都设置相应的属性。制作完成后的菜单如图 5-2 所示。 图 5-1 Push Button 属性设置 图 5-2 按钮菜单 23 5.2 系统操作的实现 5.2.1 考评系统的操作步骤 系统实现考评操作总共分为七个步骤,具体如下: (1)点击班长,班长做手势上提大钩。 (2)点击吊环,将吊卡安上吊环。 (3)选吊卡,点击油管 2,安吊卡。 (4)选液压钳,点击油管,打开液压钳。 (5)点击推动液压钳动力杆。 (6)点击班长,班长做手势稍微上 提大钩。 (7)点击油管,卸下油管。 5.2.2 数据表的建立 建立数据表用到的是阵列( Array),阵列的熟练运用与否,是影响 Virtools作品优劣的关键。实际上,阵列并不难,其诀窍在于逻辑的推演上,必须一步一步小心谨慎、有耐心的去编辑每一个环节,这样就不容易出错。如图 5-3 所示的阵列就是建立完成后的阵列。此阵列当中的各个数据项的说明如下: 1.czbz 操作步骤 :此列的属性是 Integer,其显示的是每一步操作的编号。 2.cznr 操作内容 :此列的属性是 String,其显示的是系统当中的每一步操作的提 示信息。 3.czfs 操作分数 :此列的属性是 Integer,表示每一步占有的分数值。 4.czwc 操作完成 : 此列的属性是 Integer,表示此步是否按照规定正确完成。 5.czdx 操作对象 :此列的属性是 Group,表示接下来接受操作的设备名称。 6.czxx 操作消息 : 此列的属性是 String,说明本步骤操作过程。 7.czdf 操作得分 : 此列的属性是 Integer,表示在每一步得到的最终分数 图 5-3 数据表 24 建立 Array,主要是用来存取信息的,考评系统中的每一步操作都记录在 Array中,包括操作是否正确的判断,操作步骤名称的显示,计算每一步分数以及最终考核总分,都要从图 5-3 中读取或是查找相应的信息。下面具体介绍实现过程。 5.2.3 鼠标操作设备使用的实现 这一部分主要说明在考评系统中,我们要对指定的设备进行特定的操作,旨在判断操作的准确性,系统提供了 鼠标触发左键点击事件,除了识别设备名称外,还实现了识别所选中的设备是否为需要接受操作的对象。基本实现脚本如图 5-4所示。 图 5-4 鼠标触发设备的流程图 这里涉及到了 Array 组(上文提到的数据表)中的查询测试,例如当使用者操作进行到第一步骤,就会出现提示信息显示 使用者接下来要对那个对象进行怎样的操作,为了识别操作对象的准确性,当鼠标选中一个对象并用左键激该活动作时,将触发图中的 Row Search 等模块, 通过查找指定 Array 中的某一行,当查找到的内容符合条件,即与 Array 某行某列的值相等时,系统自动会认为此步操作正确。 如果操作正确完成,则会直接自动进入下一步操作,分数计入得分表中;否则,本步分数不计分,并显示错误处理界面,包括跳过和观看正确操作两种选择。 5.2.4 鼠标跟随设备的实现 在使用者使用考评系统进行操作的过程中,可能会借助一些工具,菜单选择中会 有工具选择功能,选择相应的工具。为了让使用者感到真实的在使用所选工具,本系统实现了鼠标跟随设备的功能。具体实现过程如下: 首先,创建一个 2D Frame 和一个材质 ,分别命名为 tools和 tools_material,作为鼠标点击工具时小图片跟随鼠标的材质,需将“所需材质和纹理”文件夹中的工具小图片的名字重新命名为 tools_diaoqia、 tools_yeyaqian、并拖入到场景中 ,初始化隐藏。 25 其次就是设计设备跟随鼠标移动的脚本。我们用到了坐标屏幕的拾取,参照原点坐标来获取当前鼠标的位置,每一次鼠标变换 位置时都重新计算一次。然后获取鼠标附近某一位置,我们取鼠标右侧下标来显示设备图片,当鼠标触发菜单选项中的工具设备时触发事件,根据预设,系统查找现实选定设备的图片信息,即我们视觉看到的鼠标右侧跟有一个设备。具体实现脚本流程图如图 5-5 所示。 图 5-5 鼠标 跟随设备流程图 5.2.5 自由相机漫游的实现 我们在操作系统中设置了两种漫游方式,一种是操作漫游,随着系统的每一步骤的操作而一步步前进,镜头根据操作需要进行变换;另一种就是自由漫游,可以自由的漫游场景,这里我们使用的是自由相机,我们通过键盘控制相机的运动方向和运动模式,可以拉近拉远,或是移动、旋转来改变操作视角,既可以观看整个场景的概况,也可以近处细看某个物体,从而达到了场景的漫游的效果。 1.摄像机的创建 我们在新建板中单击创建摄像机按钮 ,创建一个摄像机,设置其初始值,然后为其创建一个脚本。 2.脚本 实现的关键 BB 我们使用自由相机实现场景漫游,主要是通过键盘信息来控制相机的行走与视角的转向。因此我们使用到 Switch On Key 模块来响应键盘事件。根据模块本身的特性,我们可以根据需要增加输入输出控件条件。这里我们实现了八个动作,动作和键盘的映射关系如表 5-1 所示。 表 5-1 键盘控制功能表 键盘输入名称 实现功能 Up 视角相机向前移动 Down 视角相机向后移动 26 Left 视角相机向左移动 Right 视角相机向右移动 Page up 视角相机向上移动 键盘输入名称 实现功能 Page down 视角相机向下移动 Home 视角相机向左旋转 End 视角相机向右旋转 3.具体脚本的实现 除了使用 Switch On Key 模块之外,我们还用到了八个 Per Second、 6 个Translate 和 2 个 Rotate 模块。 Per Second 与 Translate 连接实现的是移动的效果,而 Per Second 与 Rotate 连接实现的是旋转的效果。另外还用到了一个拾取坐标参数计算属性设置,完成后的效果如图 5-6 所示。 图 5-6 自由相机的脚本实现 5.2.6 鼠标识别的实现 本考评系统针对不能马上投入工作的新员工,但急需熟悉工作场地各项设施的情况,设置了鼠标识别功能,使得系统具有学习可观性。在系统操作过程中当鼠标移动到某个设备上,便会在鼠标处显示一个绿色的圆圈,同时在圆圈的右部显示该设备的名称。而当鼠标离开设备范围内时,绿色的圆圈和设备的名称 便会 27 消失。只有鼠标选中设备或者从该设备上滑过时才会有相应的显示,这就是鼠标识别设备的过程。其脚本流程图如图 5-7 所示。 图 5-7 鼠标识别的关键脚本实现 1.鼠标动作触发 本系统所使用的是鼠标滑动这一动作来触发设备拾取的功能。鼠标识别脚本流程图中的 Mouse Waiter 只有一个输出,即 Move Received,它为当鼠标滑过相应物体时有效。 Mouse Waiter 的第一个参数输出 Mouse Position 连接的是 2D Picking,它的设置是为了获取当前鼠标的位置。 2.设备的识别 2D Picking、 Is In Group 以及图像和名称的显示是物体识别过程用到的模块。当 2D Picking 点选物体后,便把点选的 3D 物体传送给了 Is In Group,通过它判断是不是选择其相应的物体,如果是的话,激活其后边相应的 显示信息 ,包括把名字传给 Text Display 使其显示物体的名字,同时也显示一个绿色的小圆圈。 3.圆圈提示及文字的显示 绿色小圆圈是在 Text Display 中设置其 Text 为 O,文字的 Size 为 30, Color为绿色。 Op 的属性设置为 Addition,其作用是为字体的显示做一个 偏移,目的是为了使显示的文字显示在小圆圈的右边。绿色小圆圈的 Text Display 的 Offset 的参数输入为前面鼠标位置的参数输出,即最后一个 Subtracti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论