三维交互模型(精选十篇)
三维交互模型 篇1
关键词:汽车三维仿真模型,交互式,显示,Cult3D OpenGL
一开发汽车结构与操作综合演示系统的意义
通过汽车结构的教学和各个结构模型的开发和演示, 可清楚地了解汽车内在部位的结构和作用, 使学生更快地掌握各种军用汽车的专业知识。通过三维结构模型的交互演示、动画演示和模拟拆装等多种形式对军用汽车各结构进行模拟显示、拆解、装配、调整和故障诊断, 从而可以使受训人员快速掌握各种军用汽车的基本结构、各结构的调整和维护保养方法, 以及各结构在调整保养中应注意的实际问题, 从而提高受训人员的基本操作能力, 最终提高我军汽车运输车队的运输效能。
二汽车三维仿真模型交互显示及模拟拆装系统的设计方法
采用软件编程和动画制作、图像处理等相结合的方法进行系统开发。本系统在系统开发过程中主要使用的应用软件有:VC++编程软件、director多媒体制作软件、图形处理与制作软件Photo Shop、三维模型制作软件3DSMAX等。每个汽车系列主要内容包括:汽车基本结构三维模型交互显示、基本总成拆装仿真、基本原理演示讲解、常见故障原因分析及故障诊断、基本参数查询等五个模块。在每一个模块中均采用模型设计、图片显示、动画演示等形式进行综合演示。比如, 对于汽车的某个基本结构, 可进行基本结构立体模型的建立, 然后采用图片的整体演示和局部演示, 模型基本结构组成演示, 模型基本结构组成演示又可通过动画形式进行分解、拆装等演示 (可分步进行演示) , 达到图文并茂、条理清晰, 从而使受训人员一目了然, 更易接受。
在进行汽车三维仿真模型交互显示及模拟拆装系统的设计时, 其设计思路为: (1) 首先用Pro/E建立汽车各种结构的三维模型, 并导出为STL格式的模型; (2) 把STL格式的模型导入到3DSMAX进行贴图、渲染和动画制作, 并导出为C3D格式的三维模型; (3) 把C3D格式的三维模型导入到Cult3D进行交互处理; (4) 在VC++中实现对3DSMAX构造Open GL模型的控制; (5) 用VC++、Open GL等软件开发出三维模型文件嵌入控件, 用于三维模型在多媒体显示软件的嵌入式和交互式显示。
三汽车三维仿真模型交互显示及模拟拆装系统的关键技术研究
1. 三维模型的交互式处理
所有的建模都有不同的应用领域软件, 而虚拟模型要解决两个关键问题, 即模型转换和几何模型的建立。在汽车零部件三维模型的建立方面, 专业三维造型软件3DSMAX或Pro/E以它强大的建模和材质贴图渲染功能占据着得天独厚的优势。在汽车结构建模设计中, 首先用Pro/E建立汽车各种结构的三维模型, 并导出为STL格式的模型并保存;然后将STL格式的三维模型导入到3DSMAX进行贴图、渲染和动画制作, 并导出为C3D格式的三维模型;然后将渲染好的C3D格式的三维模型导入到Cult3D中。导入之前, 需要安装插件Cuh3D Exporter for 3DSMAX, 此输出插件支持从主流动画制作媒体中将模型文件导出为Cult3D中间文件格式。这样, 3DMAX就能将3D模型输出成Cult3D Design的C3D格式。将三维软件中输出的C3D格式文件置入到专业的3DVR软件中进行场景设置、交互编辑以及在需要说明的地方加入文字介绍等, 这样就可输出具有交互功能的三维模型了。
在交互性能的实现上, Cult3D采用基于Java的内核, 不但可以直接在Cult3D Designer中完成基本的交互动态展示, 还可以通过Cult3D API开发程序, 利用Java Script进行编译, 并将它应用于Cuh3D对象, 使用户可以利用熟悉的多媒体用户界面, 例如按钮和下拉列表框控制Cult3D对象的外观和行为。使用户通过鼠标拖拽对象, 从不同角度真实地了解到汽车三维模型的外形、结构和功能, 甚至更换汽车三维模型的颜色、纹理, 甚至将其组合或拆分, 大大丰富了三维浏览时的交互效果。具体流程见图1。
2. 在VC++中实现对3DSMAX构造Open GL模型的控制
3D设计的最复杂而最费时的工作是构造3D模型。Open GL没有提供高级命令函数来定义复杂的三维形体, 只提供了基本的点、线和多边形方式构造3D模型。如何利用一些优秀的商用建模软件。例如, 3DSMAX、Auto CAD等来构造3D模型, 在Open GL中加以采用并进行实时控制一直是困扰程序员的难题。下面就相关问题的解决方法加以说明。
第一, 用3DSMAX修改、渲染模型并转换文件。在3DSMAX中修改、渲染模型以后, 保存文件名后缀为.max的文件, 然后用3D Exploration进行转换, 可以选择Simple App、Data Only和Display List三个选项之一:Simple App生成一个Open GL的简单应用;Data Only只生成Open GL像素数据;Display List生成Open GL的显示列表;选择一个选项即可。为了不同的应用, 可以生成包括一个实体的法向量、材质、纹理等多种应用, 将文件名后缀为.max的文件保存为cpp Open GL Code形式, 即可以在VC++引入这一文件。
第二, 在VC++中控制三维模型。下面简单介绍VC++的MFC编程中运用Open GL三维图形库编写实时动画应注意的几个问题: (1) 在主视的文件中应包含Open GL的头文件, 即GL/gl.h, GL/glu.h和GL/glaux.h; (2) 使用Windows的设备上下文句柄, 也需要申请Open GL的着色设备上下文句柄, 同时保证正确释放着色设备上下文句柄; (3) Open GL函数只存在指定窗口类型为cs.style=WS_CLIPSIBLINGS|WS_CLIPCHILDREN时才有效; (4) 注册并实现Open GL的设备上下文句柄, 并保证与Windows的窗口句柄的正确连接; (5) 在用Open GL绘图时, 必须指定像素格式; (6) 由于要保证窗口尺寸变化时图形应做到不变形。因此, 应实现新的窗口纵横比和视口尺寸。这里只是对编程中的几个要点作说明, 读者可以根据自己的具体需要实现绘图。
为了优化系统性能, 一般应采用调用显示清单的方法调用这些数据。一个显示清单就是一组先被存储再被运行的Open GL命令, 当一个显示清单被触发时, 它内部的命令以它们被发布的顺序被执行, 这有别于Open GL的立即模式。即立即执行命令的方式。Open GL的显示清单实际上就是命令的一个高速缓冲存储器, 而不是一个动态数据库, 即一个显示清单一旦被创建了, 它就不能被修改。无论是在运行Open GL程序的本地机上, 还是在运行Open GL程序的服务器上, 合理地使用显示清单都可以改善系统性能。
运用Open GL的显示清单主要包括以下几个步骤: (1) 创建显示清单用gl New List () 和gl End List () 语句对, 在两句中间包含显示清单的内容; (2) 控制显示清单和它们的索引, 当然可以用任意一个正整数作为显示清单的索引, 但这易引起混淆, 因此用gl Gen Lists () 函数自动产生一个未创建的索引; (3) 调用显示清单用glcall List () 即可; (4) 有时有多个显示清单索引, 如果要使显示清单索引可以再被使用, 应用gl Delete Lists () 函数删除显示清单。
3. 用VC++及Open GL开发出三维模型文件嵌入控件
在VC++下用ATL做一个Open GL的三维模型文件嵌入 (CO) 控件, 其步骤如下:
第一, 新建一个ATL空项目 (项目名Open GL_ATL) 。
第二, 添加一个ATL对象 (My Control) (VC6下为Full Control, VC7下为ATL控件) 。
第三, 在对象的.H头文件中添加:#include
第四, 在接口实现类添加一个Open GL的RC (rendering context) 成员变量:HGLRC m_h RC。
第五, 添加一个设置Open GL像素格式 (接口实现类的) 成员函数。
第六, 添加一个Windows消息WM_CREATE:
LRESULT CMy Control::On Create (UINT/*u Msg*/, WPARAM/*w Param*/, LPARAM/*l Param*/, BOOL&/*b Handled*/) ;{
HDC hdc=Get DC () ;RECT rc;Get Client Rect (&rc) ;
Create Context (hdc, rc) ;//初始化
return 0;}
第七, 添加一个Windows消息WM_DESTROY LRE SULT CMy Control::On Destroy (UINT/*u Msg*/, WPARAM/*w Param*/, LPARAM/*l Param*/, BOOL&/*b Handled*/)
{wgl Make Current (NULL, NULL) ;
if (m_h RC) {wgl Delete Context (m_h RC) ;m_h RC=NULL;}return 0;}
第八, 添加一个事件On Render, 点击Class View中的IMy Control Events添加方法On Render参数int right, int left, int bottom, int top, 然后编译idl文件, 点击CMy Control实现连接点选中IMy Control Events。
第九, 在On Draw添加代码:
HRESULT On Draw (ATL_DRAWINFO&di)
{HDC hdc=di.hdc Draw;RECT&rc=* (RECT*) di.prc Bounds;wgl Make Current (hdc, m_h RC) ;gl Clear Color (1.0f, 0.0f, 0.0f, 10.0f) ;gl Clear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) ;//激发On Render事件
Fire On Render (rc.right, rc.left, rc.bottom, rc.top) ;
On Render (rc.right, rc.left, rc.bottom, rc.top) ;gl Finish () ;Swap Buffers (wgl Get Current DC () ) ;return S_OK;}
第十, 编译。要使用本控件, 首先注册, 然后拖到要显示的窗体上, 并在On Render事件中写入要显示的物体。
四应用举例
图2应用本文阐述的方法开发的汽车三维仿真模型交互显示及模拟拆装系统界面, 该系统通过网络环境下的ASP动态网页技术与Cult3D网络三维浏览技术以及网络数据库技术实现了汽车结构三维模型在线展示, 也可以在Director、Power Point、VC++等软件中进行汽车结构三维模型动态交互展示, 即可以对三维模型进行旋转、缩小、拆分和装复等。
五结束语
本文讨论了基于多媒体的汽车三维仿真模型交互显示及模拟拆装系统开发过程中的若干关键技术和系统的主要构架, 提出了三维可视化和交互式浏览的显示设计方法, 即使用Pro/E、3DSMAX和Cult3D建立产品模型, 通过Cult3D Java API和VC++实现场景交互, 从而实现对三维模型进行旋转、缩小、拆分和装复等。
参考文献
[1]阿新工作室.任我虚拟Cult3D/3ds max 4.2/Maya 4三维产品设计与互动教程[M].北京:北京希望电子出版社, 2002
[2]侯俊杰.深入浅出MFC[M].武汉:华中科技大学出版社, 2001
移动三维交互场全新的用户界面 篇2
1964年诞生的鼠标,较之于1714年发明的键盘,晚了整整250年,然而对于用键盘的繁琐指令来操作计算机而言,鼠标的出现颠覆了对计算机发号施令的方式,不论是鼠标还是键盘,都已经成为人机交互的经典。随着科技的发展,革命性产品出现的频率越来越快。尽管一直到2007年苹果公司推出的iPhone才使触摸屏技术达到了臻于完美的地步,但其实触屏技术早在1971年就出现了,该技术最终让人们放弃了通过鼠标和键盘对计算机发号施令,也堪称是一个新的人机交互的不朽之作。
而现在,人机交互再一次出现了新的革命性的技术,这一次全新体验的人机交互用户界面来自于微软。在2010年微软亚州研究院创新日(Innovation Day 2010)的现场,微软亚洲研究院硬件计算组副研究员高睿演示了移动三维交互场(Mobile Surface)技术。
通过一个普通的激光投影仪和一个摄像头,移动三维交互可以在一个普通的平面(比如桌面)投影出一个操作界面。当系统中运行了一个鼓乐敲击游戏程序后,桌面上也投影出了两只鼓的图像。“现在我来进行演示,你可以在桌面上敲击投影中左边的这只鼓。”高睿一边说着,一边用手进行着演示,随着他的敲击,手机中所显示的左边鼓响了一声。
“移动三维交互场的独特之处就在于它的三维概念,你可以像我这样在右边的空中轻轻敲击,就能够让右边的这只鼓发出声响,如果你敲击鼓的侧面,还能听到不同的声响。”他一边说着,一边用两只手在空中进行起了有节奏的敲打,而两只鼓也开始乒乒乓乓响了起来。“另外,你还可以更加用力进行敲击而发出不同大小的鼓声。”
他用手掌在投影上进行了一个翻页的动作,游戏切换到了另外一个五鼓虚拟界面上,为了更形象地体会到作为一个架子鼓手的感觉,高睿拿出两只普通的鼓槌,在不同的鼓上进行敲击,来了兴致的时候还在吊镲上敲了两下。事实上,这一场视觉的盛宴、触觉和感觉的奇妙体验只需要一个手机,一台投影机和一部摄像机就能够实现。
从触摸操控的微软Surface到三维空间操控的MobileSurface,人机交互技术在不断演进中。“移动三维交互场主要是为移动计算机提供一种新的交互方式,我们希望能够将之前的微软Surface的用户体验带进移动计算的场景中,更为重要的是希望在移动设备上实现三维交互的体验。”高睿如是说。
触摸交互为基础
当2007年微软CEO史蒂夫·鲍尔默带着公司开发的第一款平面电脑Surface高调出现在由《华尔街日报》主办的美国IT行业中一年一度的“D盛会”上时,人们将这个大家伙称为“异型”——因为微软Surface看起来更像是一个寻常的桌子而不是一台电脑。它有一个镶嵌在桌面内的30英寸水平显示器,用户的所有操作都可以通过手指触摸屏幕实现,完全颠覆了惯用的人机交互模式。
微软Surface的巨型桌面显示器是由一个隐藏式投影机和几个用来侦测的摄影机所组成的。透过这块“异型”桌面,用户不仅仅能够完成最基本的拖拽查看照片、绘画等简单操作,而且通过微软Surface提供的多点触控(Multi-Touch)功能,还可以让多个用户同时使用一台Surface电脑成为了现实。
除此之外,微软Surface最大的特点在于其物体辨识功能。通过借助RFID的支持,当用户将一瓶葡萄酒放在桌面上时,微软Surface就能够知道这瓶葡萄酒是在哪一年生产的;又或者当用户将相机或者手机放在桌面上,其中所存储的照片就能够直接传输并且在微软Surface上显示出来。
“通过微软Surface,人们就可以借助更直观的方式与科技进行交互。这是一个价值数十亿美元的新领域。我们可以想象,在未来的某个时候,表面计算技术将普遍深入人们的生活,从桌面到走廊无处不在。Surface是实现这一梦想的第一步。”斯蒂夫·巴尔默表示。
事实上,微软跨出Surface这一步用了足足6年的时间。早在2001年,微软硬件的史蒂维‘巴西什(stevieBathiche)和微软研究院的安迪·威尔森(Andy Wilson)就已经有了初步的想法—让一个具有交互功能的桌子能够理解物理物体的操作行为。第一台名为TI的样机诞生于2003年,由以巴西什和威尔森为首的虚拟研究队伍所创造。随着Surface的进化,照片浏览器、视频魔方等早期应用程序也逐渐被开发出来,这时团队开始致力于研究如何让这个桌子能够识别放在上面的物理物体。当时他们探索了各种各样的标签形式和尺寸,最终决定使用五个摄像机来捕捉更为精确的自然运动和姿势。
微软Surface的出现不仅让用户能够更方便、更主动的和数字内容进行交互,同时也模糊了物理物体和虚拟世界之间的边线。而在此基础上所发明的Second Light Surface更令人惊叹。在微软的TechFest活动上,微软工程师斯蒂夫霍格斯(steve Hodges)进行了演示。他先在Surface上放了几张宇宙的照片,并且将其中一张照片拖出来放大,然后他拿出一张半透明的描图纸,放在Surface上空中,这时描图纸上显示出了字,内容是描述这张照片中星球的情况。
尽管这套演示令人惊叹,然而这一切是通过两台投影仪所实现的,两台投影仪的表面都安装了一种特殊的玻璃,这种玻璃能够在不透明与透明两种状态下进行不断切换,切换的频率是每秒60次。当玻璃处于不透明状态时,第一台投影机就可以把光线打在上面,显示出影像;而当玻璃变为透明时,第二台投影机就能够穿透表面,将图像打在这张不透明的描图纸上。由于人眼的频率低于玻璃切换的频率,因此能够同时在Surface表面和空中的描图纸上看到两个不同的图案。
三维交互新尝试
“现在微软的用户对于微软Surface已经很熟悉了,然而微软Surface产品太大,用户没有办法随身携带。”高睿表示,“而我们新开发的移动三维交互场Mobile Surface主要是为手机、移动计算机等移动设备提供一种新的应用场景。”
随着手机的智能化发展,手机的应用变得非常普及,功能性越来越强,然而即使是全屏幕上只有一个按钮的iPhone手机,用户在输入或者进行交互的时候也会因为屏幕有限而受到一些局限,而Mobile Surface不仅解决了屏幕的局限性问题,而且也不再需要以往Surface的那张笨重桌子,就能够实现更多的功能。
“我们通过研究如何使用摄像投影传感系统来将任何一个例如桌面或者纸张一样的表面变成移动三维交互场。”高睿介绍说。通过移动三维交互场,用户不仅能够在手机或者移动计算机等移动设备上体会到类似于微软Surface那种智能触控体验,而且还能够在三维空间中进行自然地人机交互。
“就像我刚才所演示的架子鼓,是具有落差和层次的,
用户可以在空中敲击,这就是在三维空间中进行交互的最典型例子,而目前根据我们的研究,这种操作的精准度是比较高的。”高睿介绍道。移动三维交互场尽管看起来需要多种技术综合实现,其展示的成果也令人赞叹,然而这项技术所使用的设备并不复杂,主要由一个激光投影机和一个摄像头组成。
激光投影机合成图像的原理与电视机相似,都是通过显示元件直接将激光投射在屏幕或者墙上。激光束从上到下、从左到右进行“扫射”,工作过程和CRT的电子束扫描在荧光屏上有些类似,都是通过逐行扫描投射的方式来显示图像。当激光投影机开始运转并投射出一条线时,摄像头就会拍摄一张照片,当图像中有物体的时候,激光投影机所投射出来的这条线的形状会发生变化,因此通过分析这些扫描线,就能够计算出投影空间中物体的形状以及运动轨迹。
事实上,仅仅通过分析扫描线而计算出物理物体的形状以及运动轨迹对于Mobile Surface的功能性而言,并没有太大的意义。要想让用户获得更令人惊叹的人机交互体验,其关键点在于如何让机器能够正确理解一个物体的运动或者是用户的一个动作,为此,微软亚洲研究院的研究员们采用了一系列的算法。“通过这套算法,计算机能够将物体的运动以及人的动作翻译成为正确的操控指令,而要实现这个目的,我们首先要做的就是大量的采样。”高睿表示。
通过大量采样建立起各种物理物体以及人的各种手势的模型库,在分析这些样本特征的同时不断优化计算机的算法,这样,当一个物理物体或者是某一个人的手势出现在MobileSurface的投影区时,计算机就能够将这个物理物体或者手势的特征与模型库中所采集的物体特征进行比对,通过这种判别方式计算机就很容易识别投影区中的物理物体是什么或者某一个手势有什么含义了。“整个过程虽然看起来很容易实现,但是在实际中并不容易。”高睿介绍说。
如果仅仅是将一个物理物体放在投影区让计算机进行判别,由于将物体放置在投影区就变成了静止状态,因此识别起来相对比较容易。然而如果是一个手势,例如在空间中作出了一个敲击物体的动作,人手是不可能进行完全垂直的上下移动,通常紧握的拳头会以手腕作为定点而呈圆弧状摆动,而且手部在敲击动作中还会有一定的倾斜角度,这些情况会影响计算机进而改变了扫描出来的物体的形状,不仅影响了计算机识别的效
率,同时也影响了计算机识别的准确度。
为了解决这个问题,研究员们采用了一种特殊的算法,通过这种算法能够将扫描出来的物体形状进行一次归一化处理,这样就能够将空间中同一个物体的不同角度最终转化成为统一的姿态。“举个例子来说,如果你在投影区中放置了一张长方形的照片,不论你怎么去旋转这张照片,通过这套系统的算法最终都会把它还原成为一个长方形的照片,然后再让计算机进行进一步的识别。”高睿表示。
随时随地可交互
移动三维交互场给用户带来的人机交互体验是前所未有的,那么它的推出到底会如何改变人们的生活呢?不妨先看看微软Surface的经历。
尽管在微软Surface推出的时候,多点输入触摸屏、iBar、DelighTable已经出现了,然而它仍然给这个信息时代带来了革新。设计比产品廉价,而创意比设计更廉价,所以人们仍然不会因为微软Surface在大方向上的一致而忽视了它的创新,这个如此鲜明的交互方式从来没有被表达得如此细致。因此,当微软Surface刚刚推出,全美第四大移动通信商T-Mobile、知名的连锁饭店Starwood集团以及全球最大的赌场经营商Harrah’s Entertainment等,就已经与微软签下了订单。
而对于Mobile Surface而言,其最大的特点就是能够在普通的平面上进行三维的交互,而这项技术也可以在众多的领域中进行应用。
以建筑行业为例,通过Mobile Surface,用户能够在桌面上投射出一栋大楼一层的平面图,如果这时用户将一张卡片放置在投影区域中,移动三维交互场就能够感应到卡片的进入,并且通过分析投影机的扫描线来判断出卡片的高度,根据这个高度信息,计算机不仅能够判断出卡片的位置在大楼的哪一层,还能够控制投影机在卡片上投射出这一层的平面图,因此用户就能够非常轻松地得到立体空间的分层图片,这对于建筑师或者设计人员而言能够更清晰地了解到一栋大楼每一层的情况。
除此之外,Mobile Surface还能够在医疗领域中进行应用,医生可以通过它了解到病人脑部的切面图,由于操作更自然,因此使用效率也会更高。
据了解,目前移动三维交互场的演示模型已经能够投射出210毫米×297毫米大小的区域(相当于一张A4纸的大小),而这个区域的大约20厘米高度之内的空间都可以进行动作感应。在感应精度方面,如果是平面内的移动,只要物体移动的尺寸大于一条扫描线的宽度就会被感应到,由于激光投影机的扫描线密度非常高,因此Mobile Surface能够感应到投影区内很小的物体或者是物体的微小移动。而在高度范围内的移动,只要变化1-2厘米就能够被感应出来。而在感应速度方面,由于摄像头的刷新率在每秒60帧,远远高于人们手臂的移动速度,因此人们在操作的过程中不会感觉到有延迟。
三维交互模型 篇3
将电动机三维模型以实时、动态的方式在教学过程中展示,对于电动机结构的认识以及功能的深入了解都有帮助。相对于展示真实的电动机,这种方式不仅成本低,而且在探索电动机的内部构造方面更胜一筹。
2开发工具和相关技术综述
2.1 Flare3D
随着互联网的不断发展,用户对3D内容的需求也越来越多。许多针对互联网的3D技术被开发出来,例如:Web GL、Ja-va3D和Stage3D。其中Stage3D是Adobe公司在Flash中提供的一套3D API,开发者可以使用Stage3D技术开发在网络和移动设备上实时显示3D内容的程序。
Flare3D是一种在Stage3D技术基础上发展而来的开发平台,它具有一个强大的Stage3D渲染引擎和集成化的开发环境, 利用Flare3D为Flash创建的内容无需任何额外的插件。与直接使用Stage 3D相比 ,开发者使 用Flare3D要更容易 。 用Stage3D API展现一个3D对象需要数百行代码,而使用用Flare3D只需要几行。
2.2 Flash Develop
Flash Develop是一款免费开源面向Flash / Action Script的集成开发环境,Flash Develop提供了代码提示与代码生成、项目编译和调试等功能以及大量的项目模板,非常适合用来编写Action Script代码。
2.3 3D Studio Max
3D Studio Max,常简称为3ds Max或MAX,是Autodesk公司开发的基于PC系统的三维动画渲染和制作软件。其前身是基于DOS操作系统的3D Studio系列软件。本文使用3ds Max制作电动机三维模型,并导出为zf3d格式提供给Flare3D使用。
3开发流程
3.1三维建模
首先采用3ds Max制作电动机三维模型。在制作过程中, 要为模型各组成部分起不同名字,Flare3D通过名字来获取模型组成部分。例如:电动机的定子起名为stator,转子起名为ro-tor。在起名时须避免使用中文字符,应采用英语或者汉语拼音,因为Flare3D不能够正确识别中文名称,从而导致获取模型组成部分失败。
模型制作 完成后要 导出为zf3d格式 ,这样才能 够在Flare3D中读取和显示。3ds Max本身不能够导出zf3d格式,需要安装Flare3D提供的一个插件程序,该插件程序安装好后, 3ds Max中会出现Flare3D->Export菜单项目,然后点击进行导出选项设置,一般保持默认设置,设置完毕确定后即可完成三维模型的导出。
3.2搭建开发环境
开发环境采用的是Flash Develop,首先要新建工程项目, Flash Develop提供有多种项目模板,这里可以选择AS3 Project类型。
工程项目建立好后,为了能够在程序中使用Flare3D的功能,还需要做一些额外设置。Flare3D的功能是以swc类库形式提供的,先要将类库文件拷贝到工程项目所在的文件夹里,这样类库文件会出现在Flash Deveop的工程项目边栏中,然后使用右键菜单中的添加到库命令就可以在程序中使用Flare3D的功能了。
3.3代码实现
Flare3D提供一套简单方便的接口用来实现显示和操作三维模型。大致步骤如下:
1)创建三维环境
三维环境是用来容纳三维模型的容器,三维模型需要被载入到三维环境中,才能够在屏幕上显示出来。在构造函数中使用以下代码创建三维环境。
scene = new Viewer3D( this );
2)载入三维模型
三维环境创建后使用以下代码载入由3ds Max制作的三维模型。
model = scene.add Child From File("motor.zf3d");
3)侦听模型加载事件
三维模型的载入是一个异步过程,而且在载入完成了才能获取模型组成,所以需要通过侦听载入完成事件,确保载入过程已经结束。
使用以下代码可以侦听载入完成事件,获取模型组成部分的代码要放在侦听函数中。
scene.add Event Listener( Scene3D.COMPLETE_EVENT, com-plete Event );
4)获取模型的组成部分
在侦听函数中,使用以下代码来获取模型组成部分。
rotor = model.getChildByName("rotor") as Mesh3D;
获取模型组成部分需要向模型对象的get Child By Name方法提供组成部分的名称,这个名称需要和3ds Max中为组成部分起的名称相一致。
5)操作模型组成部分
在获取了模型组成部分后,就可以对其进行各种操作。本文主要进行的操作是隐藏和显示,通过隐藏组成部分,可以暴露出模型的内部结构,便于观察和理解。
使用以下代码对模型组成部分进行隐藏和显示。
rotor.hide();
rotor.show();
在创建三维环境时,如果采用的是View3D(this),就不需要编写额外的代码,View3D提供基本的视角变换功能,可以实现采用鼠标和键盘来控制观察视角的旋转与平移。
3.4编译运行
代码编写完成后,编译生成swf文件。将swf和zf3d文件嵌入到网页中,当网页被打开时,电动机三维模型得以显示。
4结束语
本文提出了一种基于Flare3D的可交互式电动机模型展示方法,用于在教学过程中展示电动机的结构。该方法具有直观、形象和成本低的优点,在此研究的基础上还可以添加更多的模型和互动功能,为教学工作提供便利。
摘要:随着互联网3D技术的发展,使得利用互联网以交互式的方式显示三维图形成为可能。Flare3D作为一种性能优越的3D平台,提供了整套开发工具和完整开发流程,大大简化网络和移动3D程序的开发过程。文章描述的是利用Flare3D以实时、动态的方式展示电动机三维模型的方法,还可以通过交互操作切换观察视角以及探索电动机的内部结构。
三维交互模型 篇4
今天的青岛市市南区政务网欢迎页给网站受众提供了两个入口选择:其一是传统布局的政务网页面;另一个则是以网上审批办事为主要内容的完全三维场景化并辅有虚拟动画人物导航的界面,操作更加直观便利和人性化,令人耳目一新,倍感亲切,网站交互的友好性获得了明显的提升,受到了公众的欢迎和认可。
需求的产生
近年来,越来越多的地方政府建立了政务网站,这些政务网站逐渐成为公众获取政府信息的重要载体。然而,随着政务网站栏目的不断丰富和政府信息的成倍增长,相当多的网民望着洋洋洒洒的页面却不知该如何下手,鼠标点个三下五下也未必能找到所需政府信息,公众从政务网站获取政府信息的难度反而有加大的趋势。尽管当前的政务网站一般也提供站内搜索功能,然而对于一个普通网民而言,如果没有专业的检索技巧,面对多级菜单和不够智能的站内搜索引擎,往往会花费较多时间,可获取的导向和信息却往往不够准确。一般的站内搜索引擎通常是采用关键词匹配技术,缺少对用户输入的语意分析功能,这也就势必要求公众具备相当程度的关键词提炼能力,否则搜索引擎难以提供准确的信息。比如咨询“生育第二个子女许可申请材料有哪些?”,如果输入“二胎”,对于传统的搜索引擎而言就找不到对应的服务事项,必须使用与事项库问题完全一致的关键词“第二个子女”。由于搜索关键词需与事项问题库完全匹配,而公众并不见得完全知悉,就可能造成搜索结果为空,降低了搜索的命中率,无形中拔高了公众使用政府网站获取政府信息的门槛。
在政府网站的网上办事功能向公众日益推广的大趋势下,公众通过简单直觀的交互就能获取办事信息的诉求就显得愈发强烈了。
按照软件工程的理论,最友好的交互界面是不需用户学习,仅凭基本的日常生活经验就可以迅速掌握的。本着这一原则,青岛市市南区尝试打造了一个围绕网上审批办事内容完全三维场景化并辅有虚拟动画人物导航的站点——网上虚拟审批大厅。
网上虚拟审批大厅应运用先进的多媒体技术、智能人机交互技术以及数据库技术,与网上审批办事平台系统建立数据交换,通过简洁明了的引导式问答,以生动的虚拟卡通形象配以礼貌大方得体的语言、动作和表情,实现与网民的智能互动交流,在一定程度上取代传统客服人员,为网站访问者提供导航指引或是咨询解惑。
设计与实现
总体框架:网上虚拟审批大厅引用审批办事服务平台的数据,与审批外网服务平台的数据保持同步更新。由数据管理平台来完成数据的交换,虚拟导航员后台和网上虚拟审批大厅管理平台实现对网上虚拟审批大厅的管理和维护。
技术选型:系统采用.NET技术架构,分层设计,基于Web+应用程序方式,采用.NET、COM+、WebService、XML等编程技术,实现个性化的信息和应用服务,支持Oracle、DB2、SQL Server、Sybase等主流数据库,前端采用Flash技术实现矢量图形化的动态界面和丰富的交互功能。
功能规划:
◎作为审批办事平台网站的一套子系统对互联网发布,用户无需安装特殊浏览器插件,人机交互流畅友好;
◎虚拟导航员可实现一定人工智能的问答,利用生动亲切的虚拟动画形象以问答形式引领用户进行事项办理,并可对办事要素和相近办事事项逐一呈现,24小时无需人工职守;
◎实现语音朗读功能,一部分语音通过Flash混入音轨实现,另一部分通过客户端安装可选的TTS(Text to Speech) 插件来实现,满足有文本阅读障碍人群的需求;
◎完备的后台管理功能可对服务事项问题库、事项链接等进行编辑维护;提供可定制化的服务,虚拟人物的语言、动作、场景等提供可选的方案,可根据场景需要定义虚拟人物的各种行为;
◎服务事项数据可从审批办事平台批量导入或逐条事项自定义;
◎提供审批办事大厅建筑内部场景及周边地形地貌的三维建模和渲染,便利公众上门办事前明晰地理位置和周边环境。动态显示周边公交线路查询、公交车站位置指示等便民信息;
◎提供审批大厅简介和简讯公告发布功能;
◎公众可在虚拟大厅中操作鼠标自行三维参观漫游。
虚拟审批大厅操作流程:
公众通过位于政务网欢迎页的链接入口进入网上虚拟审批大厅,在与虚拟导航员的问答对话导引中获取所需办事信息,进入相关办事事项的页面。
网站管理用户通过管理入口进入网上政务审批大厅管理后台,选择对应项进行编辑设置。
与审批办事平台的数据交换:虚拟审批大厅系统具有数据导入功能,通过行政审批办事平台提供的数据交换接口,可将审批系统接收到的事项数据导入到虚拟审批大厅系统中,从而实现在虚拟审批大厅系统接收、更新服务事项,服务流程。
同样,虚拟政审批大厅系统也提供数据导出接口,可以导出一定结构的数据文件,审批办事平台可以自动读取这些文件并修改数据库中事项的各种相关属性和状态,以实现多系统联合处理的数据同步。
虚拟导航人物:虚拟导航人物在虚拟审批大厅中处于关联始终的重要地位,主要包括人机智能问答和虚拟导航人物的行为表情匹配。虚拟导航人物应用先进的人机交互技术,具有统一接口,支持多种数据库类型的数据的导入、导出。提供智能化的问答模块,用户在提问框中提交问题后,虚拟导航人物经过判断、识别,经模糊查询后将最佳答案反馈给公众。
系统通过词库进行维护管理事项数据,词库包括自导入问题库、事项问题库、常规问题库、问题历史记录库、随机答案库、文明用语提示库、关键词库、屏蔽词库、近义词库、语气词库等,整个问答库的搜索机制基于这些词库进行搜索,通过这些词库可以尽可能准确地搜索出用户所要查询的信息。虚拟动画形象的导航人物需要针对欢迎、提问、回答等不同语境做出相应的不同肢体动作和表情,并且可以通过后台对这些动作进行选择自定义。
网上虚拟审批大厅通过人性化的操作界面,生动的互动功能,快捷直观的操作将审批办事平台众多服务事项元素有效地组织起来,运用动画形象实现了具有一定智能程度的问答和导引,显著提高了政务网站为公众服务的水平。
三维交互模型 篇5
美国AustinGeoModeling公司研发的三维实时地质解释软件Recon克服了现行地质解释软件的不足, 集数据管理、地质分析、地质绘图和地层构建于一体, 是真正的三维交互式油藏地质综合研究工具。Recon可进行的3D数据管理与质量控制包括三方面:①在三维空间观察原始测井、地质录井数据, 保证输入数据的质量;对钻井分层、地震数据、层位数据和生产动态数据进行综合;对二维和三维图件进行交互分析验证, 确保地质解释的准确性;②Recon通过在三维空间上充分展示测井数据, 在岩石物理研究、三维建模和油藏模拟之前就可以及早发现问题, 是进行储层描述质量控制和数据管理非常有用的工具;③Recon可进行高分辨率层序地层学分析, 预测相带展布模式和地层-岩性油藏分布;进行构造形态精细研究, 分析井间构造变化及构造因素对油气富集的控制;进行沉积微相综合分析和剩余油分布研究以及油藏管理。
三维交互模型 篇6
三维场景中水流效果的实现方法主要有两种,(1)利用各种相关函数来动态计算产生水面特效,如正弦曲面、Bezier曲面、Gerstner波。它主要适用于对水面模拟效果画面要求高的三维场景。(2)利用材质贴图技术模拟水面,它主要适用于对特效要求不高的水面模拟。本文利用材质贴图技术实现水面的模拟,将水面分成平面和曲面两种,在Virtools虚拟交互系统中模拟平面和曲面水面的流水效果。
1 平面水面
如果水面是一个平面,例如,湖面,喷泉水面,可以运用PlanarMapping技术(平面投影贴图)产生水面上波光粼粼的效果。如图1所示:
1.1 模拟原理
Planar Mapping是指材质以平面的方式将纹理文件Texture投射在3D物体上。为了实现对平面水面的模拟,需要对水面添加两种材质,分别用于模拟水面和水底的材质,然后利用Planar Mapping技术将水面和水底的材质映射到三维平面上。在平面贴图过程中,材质沿着三维参考坐标的Z方向投射到三维水面。水流效果则通过三维参考坐标在X和Y方向上的移动来实现,当参考坐标每秒钟沿着X和Y方向移动时,映射到三维平面的材质也随之产生移动的视觉效果。
1.2 模拟过程
第一步:新建一个三维平面,为其添加水面的材质,并设定相应的纹理文件贴图。同样方法再添加一个水底材质,可以设定一个新的纹理文件贴图以产生更好的视觉效果,在此,为了简化操作,两个材质文件共用同一纹理文件。如图2所示:
第二步:新建两个三维参考坐标作为水面材质和水底材质的Planar Mapping参考坐标。由于Planar Mapping是沿着Z方向投射纹理文件,因此需要设置两个参考坐标的Z方向基本垂直于3D水面。如图3所示:
1.3 程序实现
(1)加载材质。分别将水面和水底材质加载到三维平面。如图4所示:
(2)指定材质的参考坐标。分别指定水面和水底材质平面贴图的参考坐标。如图5所示:
(3)实现水面流动。水面流动是通过材质贴图参考坐标的X和Y方向的移动,引起水面材质的变化。如果水面和水底的贴图参考坐标移动的速度和方向不一样,就会产生水面交错重叠的效果。如图6所示:
完整代码如图7所示:
(4)设置水雾效果。为使水面更加真实,可以设置水面的水雾效果。如图8所示:
2 曲面水面
水面是一个曲面,例如河流、瀑布与潮汐,可以使用材质纹理卷动技术产生水流动的视觉效果。效果如图9所示:
2.1 实现原理
利用材质纹理卷动技术可以实现曲面水面流动的效果。材质纹理卷动是指随着时间的变化修改水面UV贴图的坐标值,从而使材质贴图在水面上卷动。曲面河流由两个曲面重叠组成,对两个曲面添加2种材质:模拟水面和水底的材质,水面和水底材质需要带通明通道。为两个曲面材质的纹理卷动分别设置不同的材质卷动速度,加上水面和水底材质设定了通明通道,两个不同材质可以产生重叠交错折射的流水效果。同时还可以通过加上粒子特效来模拟水雾以达到更加逼真的效果。
2.2 实现过程
第一步:设置材质。两个大小相同曲面瀑布放在场景中,设置两个曲面的三维坐标一样以使两者重叠。两个曲面及两个曲面的叠加效果如图10所示:
第二步:实现材质纹理卷动。两个曲面的材质分别纹理卷动,卷动的速度不同,以模拟水面和水底不同的水流。如图11所示:
第三步:添加粒子特效。添加一个三维参考坐标,添加粒子发生器模拟水雾效果。如图12所示:
3 结论
在Virtools中采用材质纹理卷动技术可以模拟曲面水面的规则性流动效果,如瀑布、潮汐与河流等。采用平面贴图技术可以模拟平面水面的规则性流动效果,如湖面等。采用这两种技术,虚拟场景中水面都可以模拟出所需要的效果。
参考文献
[1]陈彦均,弘郁.电玩游戏中水面波特效产生方法之研究,龙华科技大学.
三维交互模型 篇7
计算机三维建模和3D虚拟交互技术的不断发展, 使得虚拟现实的应用已逐步深入到社会各个领域, 利用虚拟现实技术研发教学课件成为教育技术领域关注的又一热点。
虚拟现实技术是利用三维图形生成技术、多传感交互技术以及高分辨显示技术, 生成逼真的三维虚拟环境, 使用者利用键盘、鼠标等输入设备, 便可以进入虚拟空间, 成为虚拟环境的一员, 进行实时交互, 感知和操作虚拟世界中的各种对象, 从而获得身临其境的感受和体会。虚拟现实技术的基本特征是沉浸性、交互性、构想性、动作性和自主性。虚拟现实技术的发展将逐步改变人们的生活方式。
在国外, 虚拟现实技术已广泛应用于课堂教学, 国内关于虚拟现实技术的教育应用研究也已经有了成果。作为新的教学媒体, 虚拟现实技术的出现无疑会对教学产生深远的影响。
虚拟现实应用于教育是教育技术发展的一个飞跃。它营造了“自主学习”的环境, 由传统的“以教促学”的学习方式代之为学习者通过自身与信息环境的相互作用来得到知识、技能的新型学习方式, 符合建构主义学习理论。虚拟现实在教育中的应用主要在以下几个方面:
(1) 利用虚拟现实技术进行教学研究。例如, 浙江大学在建筑方面进行虚拟规划、虚拟设计的应用, 清华大学对临场感的研究等都颇具特色。
(2) 建立虚拟学习环境。如建造人体模型、太空环境模拟、化合物分子结构显示等。
(3) 建立虚拟实验室。大到宇宙天体, 小至原子粒子, 学生都可以进入这些物体的内部进行观察。一些需要几十年甚至上百年才能观察的变化过程, 可以在很短的时间内呈现给学生。
(4) 建立虚拟实训基地。可以解决实训时危险性大、费用高、小概率事件再现和个性化导训等问题。
2 虚拟现实演示型课件的界定及其优势
三维虚拟演示型课件是指利用三维建模技术和虚拟现实技术开发的可以在三维空间中展示物体形状、构造以及运动规律的一种课件类型。三维空间中的互动演示和运动模拟的引入, 弥补了常规媒体所不能呈现的多感官体验, 与平面图像、视频、动画等媒体类型相比, 虚拟型课件交互性高、信息量大、表现效果强、投入成本低。在展示常规方式无法呈现的物体结构和运动规律时, 三维虚拟技术可使演示对象处在虚拟的三维环境中, 并与学生产生互动, 这便增加了学生身临其境的体验, 使学习过程更加形象化和趣味化, 提高了学生的学习兴趣。亲身的经历、亲身的感受比空洞抽象的说教更具说服力, 从而使得学生可以快速接受和掌握所学知识和技能。
虚拟学习环境具有良好的沉浸性、信息的多维表征、良好的交互性、以学习者为中心、无时空限制等特点。许多实际经验告诉我们, 做比听和说更能接受更多的信息。使用具有交互功能的3D课件, 学生可以在实际的动手操作中得到更深的体会, 对计算机远程教育系统而言, 引入Web3D内容必将达到很好的在线教育效果。
3 虚拟现实项目开发工具
国外开发的虚拟现实产品的工具主要有3DVIA?Virtool和Quest3D, 以及一些著名的大型游戏开发引擎。
3DVIA Virtools是一套完整的开发平台, 以创新的可视化模式让用户轻松建构互动体验, 可同时满足无程序背景的设计人员以及高阶程序设计师的需要, 轻松建构出身临其境的完美体验。
Quest3D的编程方式非常独特, 开发者只需要调用并连结大量的像积木一样的信道元件, 而不用编写复杂的程序代码, 这些信道元件不仅易于使用, 而且还有强大的扩展性。Quest3D拥有大量的专题图集、大量的动漫角色模型、令人信服的植被、阴影、火焰、粒子以及逼真的水面特效等, 都可以轻易地添加到场景中。其高级特性还包括物理仿真、勘寻路线、数据库连接和网络支持等。
国内开发 的虚拟现 实开发工具 主要有虚 拟现实P、Webmax和Converse3D三个软件。
4 基于Quest3D的《几何体三维交互演示课件》的设计
《几何体三维交互演示课件》是一个简化了的虚拟演示型课件制作的模板, 其设计思路和实现技术可以推广到任何三维物体和产品的虚拟演示项目的开发中。
4.1 整体功能需求设计
学生通过点击名称按钮切换几何体, 通过自动旋转和手动旋转两种方式从不同视角观察几何体, 同时可以改变视距远近, 自由地观察三维物体。课件打包成直接运行的EXE可执行文件运行后, 界面如图1所示。
学习者可以进行如下操作:点击左侧按钮可以切换相应的几何体形状;点击“自动旋转”复选框, 可以切换几何体是否自动旋转;拖拽右下角的颜色滑块, 可以改变物体的颜色;滚动鼠标滚轮, 可以缩放物体;按下右键拖拽, 可以自由旋转物体。
4.2 系统功能设计
(1) 三维物体的空间展示:学习者既可以从不同角度观察物体, 又可以进入物体内部或剖析其截面, 甚至可以对模型进行拆解和组装。
(2) 可以通过点击按钮、热区或者GUI中的文字等方式切换一个或一组物体模型的显示。
(3) 通过特定参数的调整, 可以实时看到模型形状、颜色等属性的变化。
(4) 清晰的操作提示功能:可以对虚拟摄像机进行推、拉、摇、移操作, 或对物体进行移动、旋转和缩放的操作, 并对以上操作都有简明的操作提示。
4.3 用户界面 (GUI) 设计
本系统的GUI包括软件的背景图、系统名称、几何体名称按钮、自动旋转复选框、几何体颜色调整滑块、操作说明文字和英文系统标志7个部分。设计体现以人为本, 适用为先, 乐用为上, 虚拟环境的设计应简单、明了, 易于识别, 方便操作。
5 系统开发的关键技术
5.1 三维模型的制作
本系统主要是向学生展示基本几何体, 三维模型比较简单, 在此, 笔者精选了立体几何教学中涉及的14个几何体。几何体的模型在3dsmax中建立, 然后以DAE格式导出, 在Quest3D中, 将模型导入即可。
5.2 程序模块架构
程序的主体结构包含背景图、3D场景和GUI三个主模块组成, 如图2所示。
5.3 几何体切换功能的实现
三维场景渲染模块由一架旋转摄像机、两个点光源和一个3D物体组成。3D物体使用了相同的motion节点和材质节点, surface表面属性通过ChannelSwitch切换14种不同的几何体模型数据。其中, 通过一个“KeyValue”数值决定切换到哪一个几何体, 若值为1, 则3D场景将渲染通道1对应的立方体, 若值为2, 则渲染通道2对应的球体, 以此类推。这里, 关键的就是变量“KeyValue”的值如何确定。
如图3所示, 这里是通过点击用户界面 (GUI) 中不同的按钮以赋予KeyValue对应的值。这个操作通过一个触发器完成:当用户输入信息满足A和B两个条件时, 则将该按钮对应的序号值赋予KeyValue。条件A是DetectMouseCollision, 探测光标是否和其下输入的按钮发生碰撞;条件B是UserInput信道, 探测鼠标左键是否按下。当两个条件同时满足 (即就是在该按钮上方按下左键) 时, SetValue?Channel将按钮对应的序号值赋予KeyValue, 于是系统渲染按钮所对应的几何体。
5.4 自动旋转功能开关的实现
该模块由两个3D物体和一个触发器模块组成, 其中的两个3D物体分别是CheckBox的自身方块物体和一个说明文字物体。触发器主要实现当鼠标在CheckBox物体上点击时, 将CheckBox?State的值改为相反的值, 从而实现每点击一次?, CheckBox?State值就切换一次。
5.5 改变物体颜色
RGB?Slides?ChannelCaller中主要有3个滑块组成, 要用3个滑块的X轴向位置控制几何体材质的Diffuse固有色的RGB值, 每个滑块X轴的position值通过一个封套定义其取值范围。
5.6 GUI制作
图形化用户界面的制作比较简单, 主要是在GUI?Render?ChannelCaller下建立GUI摄影机和界面元素, 并对界面元素进行必要的布局和贴图设置。本系统的用户界面可以使用primitive下的square制作, 然后在动画模块中设置适当的大小和位置, 在物体模块中设置贴图、透明等参数。
6 结语
虚拟现实是近来计算机信息技术领域的热点之一, 在社会生活的许多方面都有广阔的发展前景, 从某种意义上说, 虚拟现实与网络通信特征的结合将改变人们对时空的看法, 改变传统的思维方式和生活方式。另一方面, 虚拟现实又是一项发展中的、具有深远潜在应用领域的新技术, 深入研究虚拟现实的教育应用, 为教师和学生插上科技的翅膀, 可以让学生学得更快更好。
参考文献
[1]恽如伟.中学物理虚拟现实教学软件的设计与思考[J].中国电化教育, 2003 (04) :54.
[2]万宁.基于虚拟场景的实验教学课件设计与开发[D].成都:四川师范大学, 2007:24-25
[3]张建武, 孔红菊.虚拟现实技术在实践实训教学中的应用[J].中国电化教育, 2010 (04) :111.
[4]黄作维, 周政权.浅谈虚拟学习环境及其在当代教育中的应用[J].高等教育研究, 2010 (02) :21-22.
三维交互模型 篇8
虚拟现实建模语言(VRML)是一种基于WWW的具有一定规范的描述性格式语言。VRML可以快速生成、修饰三维实体对象,并提供强大的交互、动画和编程功能等。对于复杂三维场景的处理,VRML提供一个锚点(空间链接),即Anchor节点将复杂三维场景链接在一起,从而实现三维场景快速流畅跳转。
2 Anchor节点
VRML空间链接绑定在三维虚拟空间中的特定造型上,当游览者对带有锚点的造型发生点击事件时,VRML浏览器将在Web中提取目的空间场景。VRML中的任何三维造型均可作为锚点造型。Anchor作为节点组,其中的任何一个子节点也可以作为引导到另一个空间的锚点。
2.1 Anchor节点结构
Anchor作为编组节点包括Children公共域、Description公共域、bBoxSize域、bBoxCenter域和Parameter域,具体功能如表1所示。
表1 Anchor编组节点
2.2 Anchor节点事件
Anchor节点主要有2个节点事件:eventOut出事件和eventIn入事件。其中:
(1)eventOut出事件中包含Parameter_Changed域和Description_Changed域,用于传出参数和相关描述的变化。
(2)eventIn入事件是Anchor节点的重要事件,它主要由AddChildren和RemoveChildren组成,它们均为MFNode类型,即多值节点型。AddChildren用于在Anchor节点的Children域中子节点序列中加入指定节点;RemoveChildren用于在Anchor节点的Children域子节点序列中删除指定的节点。
3 PositionInterpolator位置补插器节点
PositionInterpolator位置补插器节点不创建任何物体,在虚拟三维空间中也没有任何可视效果。PositionInterpolator可以作为字节点包含于任何编组节点中,且能独立于所使用的坐标系。PositionInterpolator位置补插器节点允许对三维空间的一个坐标点进行动画关键帧的插值操作,建立插补器时,为动画的不同完成比率设置相应的坐标值。其中:Key域是关键帧时间比率列表,KeyValue域是指定的一个关键位置的坐标列表。KeyValue的每一个关键位置都是一组由X,Y和Z浮点值组成的三维坐标或平移距离。
4 TouchSensor接触传感器节点
在三维造型中,利用TouchSensor节点可以接收鼠标点击形体的动作,并使程序发生相应变化,如动画、发出声音、改变颜色等。TouchSensor节点是VRML实现三维空间造型交互功能的关键所在。TouchSensor节点主要字段如表2所示。
在三维空间的坐标系中,给出一个形体及用DEF命名的TouchSensor。程序运行时,当鼠标移到造型上时,TouchSen-sor准备接受点击信号,同时发出isOver信号。通过利用isOver或touchTime信号,使程序发生相应变化,如动画、发出声音、改变颜色。值得一提的是,当使用DEF定义引用时,传感器将感知观察者在其父组中任一造型上的动作。
5 结语
Anchor节点在VRML构造复杂的虚拟空间中的作用十分重要,大场景或多场景的三维虚拟仿真研究中均会涉及到。如果将每个场景作为主场景的资源将严重影响程序的运行效率。利用Anchor节点则有效实现场景间的跳转,提高了浏览器对虚拟现实建模的解释效率,也提高了其在网络中的传输。三维造型在接收用户发出动作后可以产生不同的动作效果。例如,如果实现三维造型的复杂动作可以使用CylinderSensor节点进行水平轴旋转,PlaneSensor节点可以实现延伸轴旋转,SphereSensor节点则可以实现按原点旋转;如果使用ProximitySensor节点,可以实现三维造型的复杂运动、颜色变化。在VRML下通过不同节点的相互配合,均可以实现功能各异的三维造型的交互功能。
摘要:VRML构造复杂三维场景时,通常需要多个场景的组合。如何实现三维空间场景跳转和三维造型的动态效果十分关键。结合实例讨论并给出利用Anchor组节点实现多场景跳转的方法,在动态三维造型的基础上利用传感器Sensor节点,实现复杂的交互功能。
关键词:虚拟现实,场景跳转,交互
参考文献
[1]Andreas Dietrich,Ingo Wald,Markus Wagner and Philipp Slusallek.VRML Scene Graphs on an Interactive Ray Tracing Engine[J].Computer Security.2004.5:109-116.
[2]Igor Rojdestvenski,Michael Cottam.Visualizing metabolic net-works in VRML[J].Computer Security.2002.
[3]黄文丽,卢碧红,杨志刚,景宁,等.VRML语言入门与应用[M].中国铁道出版社,2003.
[4]吴北新.虚拟现实建模语言VRML[M].高等教育出版社,2004.
[5]张杰.VRML2.0交互式三维图形编程[M].汕头大学出版社,1999.
三维模型定义 (MBD)实施经验 篇9
前面两期文章总结了三维模型定义实施的十要和十不要,并深入介绍了人员方面(人事结构和团队理念)和流程方面(方法、步骤和工具)的经验和教训。在此基础之上,下面两期文章将重点分析三维模型定义实施的第三个关键领域:产品,即具体的产品设计和制造。本文作为产品篇的上半部分首先提出四条建议,下期将继续解释四个误区。
二、MBD实施经验之产品篇:四点建议
1.选好制造文档作为突破口
产品生命周期中,各种制造文档卷帙浩繁。初始实施不求全面转型,只需要集中精力找准一两种文档突破即可,以点带面,积累经验,然后逐步扩大范围。美国一家水处理设备公司 Waters就是一个典型的例子。尽管实施团队满怀热情,计划全面取代二维工程图,但是遇到采购、检测等各个部门的阻力。经过协商,最终同意采纳简单、低风险的标准件或外购件采购文档作为试点,如螺丝、轴承、管路和三通等。以往这些零部件都由二维工程图定义,但实际上它们都是按照行业标准或规定设计和生产的,尺寸和公差都遵循行业通行的规范。所以采购部只需要确认零件号、种类、规格、材料和数量,这些信息大都已经在标题栏体现;而检验员只需要按照设计要求检查关键尺寸,完全没必要检测所有特征,因而不需要完全尺寸定义;公差更简单,除非特殊要求,其他绝大部分都已经在技术要求或标题栏中进行全局定义,例如线性尺寸小数点后两位精度公差为正负 0.01,三位精度公差为正负 0.005,角度公差正负 1度。所以最终达成的双赢共识是如图 1所示的三维 PDF。设计部门直接标注模型,省略大量非关键尺寸,发布三维 PDF,并检入产品生命周期系统,从而不再需要单独的二维工程图;而采购和检测部门从产品生命周期系统读取更加清晰的电子三维 PDF,得到关键尺寸。更重要的是,这个突破口可以让三维模型定义和三维 PDF得到更广泛的关注和使用。
类似突破开路的例子还有很多。比如一家日用消费品企业选定复杂的塑料零件在三维环境下标注关键特征,而其他非关键的有机复杂曲面则只在 CAD模型基础上定义一个表面轮廓度公差要求。原因是有机曲面本身就很难完全标注准确,没有必要花费时间在二维工程图上。另外一家医疗仪器企业用三维钣金件 PDF做询价单,可以增进加工厂的理解,提高报价速度。
2.清晰的组织与呈现三维标注
制造信息的读取对制造的成败至关重要,因此组织和呈现三维标注应该得到与创建标注同等的重视。图 2中繁乱的显示给理解设计意图造成了极大的不便,业界戏称为“刺猬现象”。这使三维模型定义备受诟病,经常给实施造成阻力。
三维模型定义并不代表完全抛弃二维工程图行之有效的方法。比如二维图层清楚的组织重叠元素就广受欢迎。在三维模型中,图层也可以帮助有效地分类组织标注,尤其是同一个视角的不同元素。美国军标 31000A规定:“标注应该能够分配到合适的图层和角度,从而有条理地组织和显示”,如图 3所示(数据来源:MIL-STD-31000A, Department of Defense Standard Practice Technical DataPackages,2013年)。比如前视角度可以分层显示或隐藏线性尺寸、角度尺寸、基准、几何公差、技术要求、表格、孔标注、端面标注和外形尺寸标注等。由此可见标注图层的分类组织可以非常灵活,完全由设计需要决定。
在图层基础上,一些传统视图对呈现和领会三维标注也非常重要,比如三视图、局部视图、剖视图和断裂视图等。更进一步来看,三维空间的独到优势以及图层与视图的综合使用,使得其他显示模式成为可能,比如动态显示标注和三维视图缩影等,如图 4~ 6所示。由此,众多的三维标注就可以合理地分配到各种图层和视图中,只在合适的情况下显示和使用。
3.订制标准化模板
除了利用图层和视图清晰地组织和展示三维标注,订制标准化模板可以进一步组织和管理三维模型定义的大量数据,方便下游生产环节读取。而且有助于加速数据创建,统一风格,保证一致性。模板可谓一劳永逸,不需要经常修改,可以应用于很多场合,如三维标注、技术要求、三维PDF、模型属性和表格等。这里简单介绍三个例子。
(1)三维标注模板。详细的三维标注可能会花费大量时间。比如欧洲一家汽车制造商的白车身底板零件可能包括上百个尺寸公差,而传动系统的气缸盖可能需要 800多个。手动定义完成一个零件所有标注之后,这些信息会记录在一个模板当中。在其他类似的设计或配置当中,只需要利用这个模板就能把所有标注自动复制创建,而工程师只需要根据新设计的独特之处手动修改少量标注而不是全部。不仅节省了几天甚至几周的时间,而且还可以保留标注的布局、精度、公差风格以及与模型特征的关联性。
(2)技术要求模板。技术要求的条款可能很多,但是大都遵循一些言简意赅的模式,保证了一致性、避免误解。正如美国一家研究机构提到的:“我们不希望看到几十个工程师各自创建几十个不同的粗糙度或氧化处理的技术要求。 ”所以模板正好派上用场。这家机构把所有技术要求的条目都统一罗列在一个 Excel模板文件中,由产品数据软件管理,对普通用户设置为只读。工程师无需自行书写技术要求,而是使用一个软件工具指定需要的条目,程序就可以自动从Excel中选择相应的内容发布到三维 PDF。类似的模板还可以包括其他文字内容,例如知识产权声明和保密声明等。
(3)三维 PDF模板。如上文所述,制造文档类型繁多,而且每个种类的文件都需要一定的规范。使用三维 PDF格式生成这些文档具备诸多优势,但是首先必须要满足类型规范。比如标准件采购文档需要公司商标、标题栏、模型视图和技术要求等;除了这些基本元素,装配手册还需要材料明细表、爆炸视图和装配步骤等;检测报告需要尺寸表格、实际测量尺寸文本框、批准签字区等。还有些文档需要封面,比如美国政府要求武器相关的文档第一页应该首先显示国际武器交易法规声明(ITAR,International Traffic in ArmsRegulations),与出口相关的文档第一页应该显示出口管理法规声明(EAR,Export AdministrationRegulations)。其它面向客户的市场和培训等文档需要专业图片封面等。所有以上元素都可以定义在各种类型的三维PDF模板当中。发布三维 PDF只需要选择合适的模板,然后一系列信息如模型、标注、属性、视图、表格、技术要求、图片和声明等都会按照模板规范自动输出,省去了重复劳动,极大地提高了效率和标准化程度。
4.验证模型、标注和衍生文件质量
图样校验是传统流程中的一个关键步骤。在三维模型定义中,这个步骤不仅不能省略,而且职责更广,包括模型质量、标注质量和保存到 CAD软件新版本之后的准确性、以及衍生文件的准确性。
模型质量涉及众多不易察觉的细节,所以问题可能比想象的要严重。比如美国陆军的一个试点项目显示某坦克传动系统,21%的模型都有错误(数据来源:Certification of Model-Based EnterpriseData,SimonFrechette和 RoyWhittenburg,2011年)。图 7列举了常见缺陷:堵塞的孔、裂缝、空缺和薄壁,导致加工故障。
标注质量包括几何尺寸和公差(GD&T)的准确性、是否满足国标要求(三维模型定义国标为 GB/T 24734-2009)、与模型的关联性以及显示布置等。问题最多的是GD&T。美国一家航空设备制造商提到:“我们把 GD&T奉若经典。每个新工程师都要经过两周的专门培训。但即使这样,使用错误还是层出不穷,甚至出自资深工程师。”举一个简单的例子,图 8为平行度与基准面 A矛盾,有些软件可以自动检测提醒 GD&T的错误。
升级到 CAD软件新版本之后,也要注意标注的准确性。如图 9所示,模型升级之后直径公差丢失。
上述都是文件本身可能的质量问题,下面解释一下衍生文件可能出现的错误。众所周知,设计数据最理想的载体是 CAD软件本身的格式,可以比较完整真实地保留信息。但是下游环节,尤其是外部供应链不一定能够读取 CAD格式,所以各种三维衍生文件会经常用到。常见的如三维PDF供 Adobe阅读器浏览模型和标注;STEP、IGS和 JT供计算机辅助制造软件(CAM)或坐标测量机(CMM)自动编程。国际标准化组织(ISO)还在 2014年 12月专门为三维模型定义发布了 STEP242格式,在模型基础上包括了三维标注(数据来源:Industrial automation systems and integration --Product data representation and exchange --Part 242: Application protocol: Managed model-based 3Dengineering,ISO10303-242:2014);此外还有 STL或 AMF供三维打印等。这些格式都方便了数据交流,但是使用当中要注意验证衍生格式是否忠实于原始数据。图 10显示了一个衍生模型变形的例子。美国空军几家供应商就为此付出了惨痛的代价:某家一级供应商的模型和标注是在一款 CAD软件平台上设计,其二级供应商无法直接读取这个格式。因此前者导出了中间格式发给后者进行加工。结果项目已经进行了半年之后,才发现导出的数据根本就不符合原始设计:有些特征变形,有些标注错位甚至丢失。不仅项目损失惨重,双方甚至有可能法庭相见。供应商的一位工程师回忆:“我们三维模型定义初始尝试令人难堪。客户没有验证输出数据的准确性和完整性就交给我们。现在公司管理层还在担心如果没有正确的流程,三维模型定义会更加耽误时间,导致更多错误。”
要解决上述问题,可以指定专人验证,类似二维工程图校对。另外有的软件工具可以进行自动验证,图 7~ 10都是软件校验的例子。从商业合作角度出发,项目应该具备数据认证机制。数据发行方(甲方或乙方)必须要对关键交付数据进行认证。认证的数据要成为合同的一部分。如果出现问题,发行方、认证方要承担责任;而未经认证的关键数据不应具备投产资质。
三、结语
上文总结了四条注意事项:选好一两种制造文档作为突破口;清晰的组织和呈现三维标注和视图;订制标准化模板;验证模型、标注和衍生文件质量。下期将继续介绍四个注意避免的常见错误,如表所示。如果您想了解更多,欢迎关注后续文章,比如实施案例、行业标准、最新技术和经验教训等,也欢迎与 Oboe.MBD@gmail.com联系讨论。来信提出建议、想法、问题的同仁,都会免费得到一份精美的三维 PDF。
表三维模型定义实施在“产品”领域的“四要,四不要”
关键领域 四要 四不要
产品 1.选好一两种制造文档作为突破口2.清晰的组织和呈现三维标注和视图3.订制标准化模板4.验证模型、标注和衍生文件质量 1.不要省略关键标注2.不要停留在图像层次的三维标注3.不要排除打印纸质文档4.不要停留在初级三维 PDF
三维交互模型 篇10
近年来, 利用数字化技术实现植物三维形态的交互设计和可视化仿真已成为数字农业研究的热点问题之一, 植物三维形态的交互设计和可视化仿真在农业科研、生产和教学等方面有着广泛的应用前景。
国内外学者在水稻、小麦、玉米、高粱、棉花、大麦等作物的器官及植物三维形态建模等方面均取得了一定的研究进展[1,2,3,4,5,6]。在水稻稻穗几何建模方面, 刘桃菊[1]等根据水稻分形特征, 用L系统模拟了直立稻穗的三维形态。孙爱珍[8]等用一元二次方程即抛物曲线来描述水稻稻穗穗轴的三维形态, 用 2个共底面圆锥体来描述稻谷。伍艳莲[9]等采用Bezier曲线拟合的方法模拟了穗轴, 并用一个椭球体来模拟单个稻谷, 用圆柱体来描述小穗的小枝梗。已有研究对稻穗的几何建模在细节描述和可视化效果上尚不够深入和详细, 没有考虑稻穗的纹理贴图、光照处理等真实感显示问题。为此, 本文在提取稻穗三维数据的基础上, 分别建立了穗主轴、一次枝梗、二次枝梗、小枝梗和小穗的几何模型, 并通过添加光照和纹理贴图来增强其真实感。
1 水稻稻穗的形态结构特征
水稻的稻穗结构如图1所示。稻穗是圆锥花序, 由主轴、一次枝梗、二次枝梗、小枝梗和稻谷组成。穗中轴为主轴, 底端连接植株主茎, 主轴上生长的次枝为一次枝梗, 一次枝梗再分生出的小枝为二次枝梗。大穗型品种, 甚至有三四次枝梗。由主轴顶端各节、一次枝梗顶端各节与二次枝梗的节上生出小枝梗, 小枝梗顶端着生稻谷。稻穗由穗主轴、10个或者10个以上的一次枝梗和150个左右小穗组成。成熟稻穗的主轴长度在18cm左右, 整个稻穗长度 (主轴长度加顶部一次枝梗长度) 在22cm左右。稻穗的长度和枝梗数因品种不同而略有差异[13]。
根据稻穗的形态结构特征, 可以认为稻穗的三维形态由穗主轴形态、一次枝梗轴形态、二次枝梗轴形态和小穗的形态所决定。
2 水稻稻穗形态结构特征提取
2.1 稻穗形态结构特征表示及提取
稻穗主轴可以用一组点Pi近似表示:
等于稻穗主轴上的三维数据点的个数;xi, yi, zi为点Pi的笛卡尔坐标。一次枝梗轴类似于穗主轴, 可以用一组数据Qi近似表示:
。在模型中Pi, Qi点是均匀分布的, 可以用三维数字化仪或者三维扫描仪获取这些三维点的坐标。
由于水稻稻谷体积较小, 用手动测量的方法无法得到精确的二维数据, 用三维扫描仪也无法获取整个稻谷的三维数据, 因此本文的方法是用数字视频显微镜获取不同角度的稻谷显微图像, 然后从图片中提取出稻谷边缘的二维数据, 再通过二维到三维的转换, 把稻谷的二维数据转换成三维数据。
2.2 稻穗拓扑结构表示
根据稻穗的拓扑结构特征可以把稻穗分解为4个层次结构, 如图2所示。分析图1所示的稻穗形态结构特征, 可发现二次枝梗由小穗组成, 由二次枝梗和小穗构成一次枝梗, 再由一次枝梗得到整个稻穗的结构。
稻穗的可视化显示设计的第一步需要确定稻穗主轴长度和一次枝梗个数。根据主轴长度和一次枝梗个数可计算出一次枝梗之间的节间长度 (根据文献[10], 本文假定稻穗主轴上各一次枝梗之间的节间长度相等) 。第二步是确定各一次枝梗的长度、一次枝梗上二次枝梗数、一次枝梗上小穗数、一次枝梗与主轴的夹角和一次枝梗之间夹角等参数。模型根据一次枝梗上二次枝梗数目和小穗数目确定一次枝梗上二次枝梗和小穗的位置。由于二次枝梗上小穗的数目比较稳定, 模型中假设每个二次枝梗上有3个小穗。
假设稻穗的基部位于坐标系原点, 如图3所示。主轴上的一次枝梗从下到上分别记为一次枝梗1, 一次枝梗2, …。一次枝梗1与穗主轴之间的夹角记为θ1, 一次枝梗2与穗主轴之间的夹角记为θ2。一次枝梗1上二次枝梗1与一次枝梗1的夹角记为θ11, 一次枝梗1上二次枝梗2与一次枝梗1的夹角记为θ12, …;一次枝梗2上第一个二次枝梗与一次枝梗2的夹角记为θ21, 一次枝梗2上第二个二次枝梗与一次枝梗2的夹角记为θ22, …。一次枝梗1与一次枝梗2的夹角记为φ1, 一次枝梗1与一次枝梗3的夹角记为φ2, …。一次枝梗1上二次枝梗1与二次枝梗2之间的夹角记为φ11, …;一次枝梗2上第一个二次枝梗与第二个二次枝梗之间的夹角记为φ21, …。
3 水稻稻穗几何形态的三维数学描述
3.1 稻穗主轴、枝梗轴和小枝梗的数学模型
一般情况下, 穗轴曲线呈一条光滑的曲线, 可以用适当的数学表达式描述。B样条方法具有表示与设计自由曲线曲面的强大功能, 已经成为描述物体形状的主流方法之一, B样条的局部性质克服了由于整体表示带来的缺点, 解决了在描述复杂形状时出现的连接问题。因此, 本文采用三次均匀B样条曲线模拟稻穗的穗轴曲线。
穗曲线决定了穗轴的形态, 穗轴的横切面可以大概地认为是圆, 本文采用基于骨架的建模方法, 把穗曲线认为是骨架, 利用球B样条建立穗轴模型。
球B样条曲线如下:假设Ni, p (t) 为节点矢量[u0, u1, …, um]{a, …, a, up+1, …, um-p-1, b, …, b}上的p阶B样条基函数, 则球B样条曲线可定义为
一次枝梗轴和二次枝梗轴的几何造型与穗主轴相似, 因此本文用球B样条模拟了一次枝梗轴和二次枝梗轴。
3.2 水稻稻谷的数学模型
水稻稻谷通过小枝梗着生在一次枝梗或二次枝梗上, 小穗由稻谷和小枝梗组成, 通过B样条逼近控制点来建立稻谷的几何模型。水稻稻谷的线框模型如图5 (A) 所示。
3.3 真实感显示
建立了稻穗的几何模型之后, 要使得绘制的稻穗具有较强真实的视觉效果, 需要对稻穗几何模型进行颜色渲染、光照处理和纹理贴图等真实感显示技术。首先根据水稻不同生长时期颜色特征的变化, 实现稻穗主轴、一次枝梗、二次枝梗和小枝梗的颜色渲染, 然后对稻穗主轴、一次枝梗、二次枝梗、小穗小枝梗和稻谷进行光照处理, 使其具有立体感。最后利用通过数字视频显微镜获取的稻谷显微图像对谷粒几何模型进行纹理贴图, 从而进一步加强其真实感效果。纹理贴图后的水稻稻谷模型效果图如图5 (B) 所示。
4 实验及实现验证
本文取镇稻88不同生长时期10个代表性稻穗样品, 对其形态参数进行统计比较。通过测量和统计分析得出:稻穗主轴上的第4个、第5个或者第6个一次枝梗为最长, 然后一次枝梗的长度依次递减, 如图6所示。一次枝梗上着生二次枝梗和小穗, 如图1所示。一次枝梗上二次枝梗的数和小穗的数与一次枝梗长度相关, 如图7所示。通过观测得出:一次枝梗越长其上的二次枝梗越多, 二次枝梗上小穗的数为2~5, 同一品种水稻稻穗的二次枝梗上的小穗数变化不大, 可以认为与其着生的一次枝梗位置无关。
用MicroScribe-G2系列三维数字化仪获取了镇稻88不同生长时期稻穗主轴三维数据, 通过测量获取一次枝梗、二次枝梗的相关形态参数。用DM-220-XY数字视频显微镜 (Digital video Microscope) 采集镇稻88稻谷的不同角度显微图像, 用Adobe Photoshop cs4获取稻谷边缘二维数据。
水稻稻穗三维形态交互设计及可视化仿真是在Windows平台上, 以Visual C++ 2005为开发工具, 以OpenGL为图形平台实现的。图8为模型输出的不同时期的稻穗三维模型。
图7 不同时期的稻穗三维模型 (右下角图为从稻穗基部数第一个一次枝梗) 。
5 结论与讨论
本文在获取稻穗的三维数据的基础上, 用B样条和球B样条建立了水稻谷粒和主轴、一次枝梗、二次枝梗和小枝梗的几何模型。在构建的几何模型的基础上结合颜色渲染、光照处理、纹理贴图等真实感显示技术, 实现了水稻稻穗三维可视化仿真。显示结果表明, 用本文提出的方法重建的稻穗模型能够较好地模拟稻穗的空间形态, 模型的真实感较强。当前模型存在的不足有:
1) 小穗比较多时可能出现小穗之间有穿插的现象, 这个需要进一步添加碰撞检测的功能来解决。
2) 本文只考虑了单个稻穗的模型, 数据量还比较小, 若场景中存在大量的数据对象时, 需要采用更有效的管理模式。