实例6 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
二、对从UG软件导出的咖啡壶零件进行坐标变换 在上述Transform节点语法结构中,每个域后的值为系统的默认值。 1.导出的VRML脚本文件都已建立了Transform坐标变换节点,只要在该节点内 增加rotation域的内容:“rotation 1 0 0 -1.57”,即绕X轴作负90度 (1.57弧度)旋转变换,转换Y和Z轴的方向,这些造型就可以在VRML系统中立 起来变为正常的位置状态了。
因为从UG软件导出的每个零件VRML脚本文件会存在不必要的节点命名DEF定 义和光源节点定义,这些定义造成脚本代码冗余,它们占据了文件空间影 响以后脚本运行和网络传输速度,应该先作相应的清除处理。
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
一、对从UG软件导出的咖啡壶零件VRML程序文件进行去冗余处理 在VRML编辑软件Vrmlpad的安装目录中找到“AddIns”文件夹,在其下拷入 第三方开发的【修改工具】插件文件“code.bas”,运行编辑软件Vrmlpad 打开VRML脚本文件后,就可点击下拉菜单【Tools】项,向下找到【修改工 具】栏,从该栏的下级菜单【代码】下点取【优化代码】项即可对当前打 开编辑的VRML脚本文件进行优化,去除冗余代码。经处理后,可在编辑软 件Vrmlpad的信息提示区看到脚本文件容量会明显变小。如“huba.wrl(壶 把)”文件,原来大小是197K,处理后变为178K(文件体积越大效果越明 显)。
图3-6-1 Vrmlpad的代码优化菜单项
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
一、对从UG软件导出的咖啡壶零件VRML程序文件进行去冗余处理 从UG软件导出的VRML脚本文件还会带有不必要的光源节点,我们可在Vrmlpad 编辑器的场景树查看窗口(SceneTree)中找到光源节点,用光标标定后按 “Delete”键将该节点删除,如图3-6-2所示。
3.我们以上壶体的位置作为基准,用内连节点(Inline)在同一虚拟空间中装 入各个零件。因为在装配时每个零件的位置是不一样的,在调入时还要对各个 零件建立起坐标变换节点(Transform)并设置它的坐标平移变换translation 域的x、y、z域值来改变各零件的位置。壶的各个零件是沿着壶的轴线(Y方向) 装配的,我们主要是要对translation域设置合适的Y坐标(对壶把零件,除设 定高度外,还要在X方向做平移,将它摆到咖啡壶的左边)。
Appearance { material NULL
# SFNode
texture NULL
# SFNode
textureTransform NULL
# SFNode
}
Appearance节点的相关域说明: material域包含了一个材质节点Material,用来设定造型的光学材质特性。 texture域可含ImageTexture(图片纹理)、PixelTexture(像素纹理)和 MovieTexture(影像纹理)节点中的一个,用来设定造型的表面贴图。 textureTransform域包含了一个TextureTransform节点,用来进行造型表面纹 理贴图的坐标变换。
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
四、对咖啡壶零件进行调用和坐标变换处理,装配咖啡壶
零件装配脚本的主要代码如下:
Transform { translation 0 85 0
#Y方向平移
children Inline { url "qifa-1.wrl"}}
#装入汽阀
Transform { translation 0 107 0
Transform { rotation 1 0 0 -1.57 children [ # 此处放入除文件头外原来所有的程序代码
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
三、对咖啡壶零件进行外观处理
在VRML系统中,对一般造型节点的外观设定主要是通过外观设置节点
Appearance来进行的,以下是该节点的主要语法结构:
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
一、对从UG软件导出的咖啡壶零件VRML程序文件进行去冗余处理
在UG软件中导出建造好的咖啡壶九个零件VRML脚本文件: shanghuti.wrl (上壶体)、xiahuti.wrl(下壶体)、hugai.wrl(壶盖)、qifa.wrl (汽阀)、mifeng.wrl(密封圈)、lupian.wrl(过滤片)、loudou.wrl (漏斗)、jiaoquan.wrl(密封胶圈)、huba.wrl(壶把)。为方便在网 页调用,VRML脚本文件用英文字母命名保存。
其中的url 域指定贴图文件所在的地址(地址值要用双引号引住)。
对上壶体零件表面进行贴图处理: 上壶体零件表面有与奶牛身上类似的黑白相错的斑纹,可以先用PS软件先做好 存成JPG类型图片文件(本例该文件为“niu.jpg”)。
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
三、对咖啡壶零件进行外观处理 2.设定造型的表面贴图 用Vrmlpad编辑器打开上壶体零件的VRML文件,在造型节点的外观节点 Appearance中加入“texture ImageTexture { url [“niu.jpg ” ]}”即 生成表面贴图,如图3-6-8所示。这时调用的贴图文件要与脚本文件放在同一 文件夹内。
第三章 计算机辅助工业设计 表达实例
实例六 运用VRMl和UG进行虚拟现实制 作——以咖啡壶为例
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
案例介绍:
本例制作一个具有可控制零件分拆和装配交互动作的VRML虚拟咖啡壶。 在本例中介绍了如何利用VRML脚本编辑器VrmlPad软件对从UG软件导出的咖啡 壶VRML源脚本代码进行优化,并运用虚拟现实构造语言vrml的相关功能节点, 对组成咖啡壶的各零件进行坐标变换、外观设置、组合装配、动作效果设置和 交互动作生设置成有可控动作的虚拟咖啡壶详细制作过程。
图3-6-3 vrml的坐标系
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
二、对从UG软件导出的咖啡壶零件进行坐标变换
在VRML系统中,坐标变换主要是通过实现坐标变换的Transform节点来进行 的,以下是坐标变换节点的主要语法结构:
Transform { children [ ] # MFNode translation 0 0 0 # SFVec3f rotation 0 0 1 0 # SFRotation scale 1 1 1 #SFVec3f scaleOrientation 0 0 1 0 #SFRotation center 0 0 0 #SFVec3f }
图3-6-8 在外观节点中加入贴图设置
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
三、对咖啡壶零件进行外观处理
2.设定造型的表面贴图
在对各面都采用同样的贴图时,可以用复制、粘贴的办法将相关语句复制到各 节点中。上壶体零件不需对所有表面都进行贴图,只处理外表面就可以了。由 于UG造型产生的面较多,贴图处理时可以将Vrmlpad编辑器的预览区打开来配 合寻找要贴图处理的表面造型节点。 对壶盖零件的外观可以采用同样方法来处理。
图3-6-7 在材质编辑器中选定材质
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
三、对咖啡壶零件进行外观处理
2.设定造型的表面贴图
对造型的表面贴图设定主要在Appearance节点的texture域中的ImageTexture 节点中进行相关的设置。以下是ImageTexture节点的主要语法结构: ImageTexture { url [ ] } #MFString
图3-6-5 定位到Appearance节点
图3-6-6 点击材质编辑器按钮
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
三、对咖啡壶零件进行外观处理 在材质编辑器类别(Category)中选“Plastic Colors(塑料颜色)”样品球 组中右下角的黑色样品球,如图3-6-7所示,然后点“OK”键确认,材质编辑 器就会自动将设好的各域域值写入各域中。如果已知各域值也可不调出材质编 辑器在程序代码中直接写入。 由于UG导出的造型是以分散的多个面片形式来构造的,每次对表面材质的设置 只能对其中一个面起作用,对整个零件要进行多次表面材质设置才能做到零件 整体外观的一致。UG将壶把分成19个面,所以对该零件要做19次表面材质设置。 对气阀零件也可用同样的方法做材质设置。
3.封圈、漏斗、过滤片等零件可参照上述的做法设置适当的外观。
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
四、对咖啡壶零件进行调用和坐标变换处理,装配咖啡壶 按以上步骤完成了对咖啡壶各零件的脚本代码编制,并保存为独立的各零件的 VRML文件,下一步的工作就是编制一个主程序文件将各零件VRML文件调入把咖 啡壶装配起来,完成装配后的咖啡壶效果如图3-6-9所示。
图3-6-4 在Transform节点中设置旋转域
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
二、对从UG软件导出的咖啡壶零件进行坐标变换
2.漏斗(loudou.wrl)部件是一个包含有多个零件的组合体,对它的变换要整 体进行,此时Transform节点的children域应将原来所有的漏斗部件所有代码 包括在其域值中,其脚本代码按下述方法编写:
图3-6-9 完成装配后的咖啡壶
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
Biblioteka Baidu四、对咖啡壶零件进行调用和坐标变换处理,装配咖啡壶
咖啡壶的装配主脚本代码编写内容如下:
1.为在合适的位置观看装配结果先用视点设置节点设置一个合适的视点 “Viewpoint {position 0 20 350}” 2.用内连节点(Inline)调入上壶体零件 “Inline { url "shanghuti-1.wrl"}”
}
0.2 0.8 0.8 0.8 000 0.2 000 0
#SFFloat #SFColor #SFColor #SFFloat #SFColor #SFFloat
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
三、对咖啡壶零件进行外观处理
设置壶把、气阀零件的表面材质: 壶把、气阀零件的材料是黑色塑料,从UG导出的VRML模型所含该零件的外观设 置还不符合实际外观,需要对其外观进行改造。 用Vrmlpad编辑器打开壶把零件的VRML文件,首先在场景树窗口(SceneTree) 中找到每个型节点的Appearance节点双击,将光标定位到该节点位置,如图36-5所示。然后在水平工具条中找到材质编辑器按钮点击调出材质编辑器,如 图3-6-6所示。
图3-6-2 用Vrmlpad的场景树删除光源节点
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
二、对从UG软件导出的咖啡壶零件进行坐标变换 在VRML系统中,采用直角坐标系,如图3-6-3所示,X轴正向指向右方,Y轴 正向指向上方,Z轴正向指向前方,三轴正向可用右手法则判断:打开右手 让拇指、食指、中指互成90度,拇指的指向为X轴正向,食指的指向为Y轴 正向、中指的指向为Z轴正向。 而UG软件的坐标系则是X轴正向指向左方,Y轴正向指向前方,Z轴正向指向 上方。从UG导出的造型在VRML下是卧放的,所以必须进行坐标变换才能与 VRML的朝向相符合。
实例六 运用VRML和UG进行虚拟现实制作——以咖啡壶为例
三、对咖啡壶零件进行外观处理
1.设定造型的表面材质特性
对造型的表面材质设定主要在Appearance节点的material域中的Material节点 中进行相关的设置。以下是Material节点的主要语法结构:
Material { ambientIntensity diffuseColor emissiveColor shininess specularColor transparency