虚拟现实技术实验2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

姓名:胡芳惠学号03134302VR实验2—基于VRML的3D设计一、实验内容:1.熟悉VrmlPad编辑器的安装和使用2.熟悉Cortona3D浏览器的安装和使用3.掌握虚拟造型的基本操作二、实验环境:1.硬件环境计算机一台2.软件环境WindowsXP操作系统、VrmlPad编辑器和Cortona3D浏览器三、实验步骤:1.选择菜单中的“工具”→“选项”可以进行选项设置。选择图2中的“预览”选项卡,可以进行浏览器设置。建议选择“使用系统默认VRML浏览器”。2.VrmlPad编辑器中提供了一些特殊节点的代码,可以直接加入编辑器中,选择菜单中的“工具”→“特殊节点”就能看到或者选择。同时,VrmlPad编辑器中有一个造型材质编辑器(MaterialEditor)给造型的材质颜色设置提供了极大的方便。先选中VRML文件中需要调整材质颜色的节点,然后选择VrmlPad编辑器中“工具”→“MaterialEditor”。左上方“Category”提供了多种材质选择,包括“GlassColors”、“MaterialColors”、“PlasticColors”、“SoftColors”等常用材质颜色的选择。3.选择VrmlPad编辑器菜单中的“工具”→“ExtrusionEditor”。ExtrusionEditor可以创建、编辑一个复杂的几何体;可以方便快捷地进行材质设置;可以进行纹理的缩放、移位、旋转、变形、模糊显示、亮度增减等;包含一个可扩充的Extrusion资源库;并且可以很容易地将代码插入到正在编辑的VRML文件中。4.VRML测试代码(1)基础造型实例1.圆柱基本几何造型。1.输入下例。#VRMLV2.0utf8#Background{#skyColor1.01.01.0#}Shape{appearanceAppearance{materialMaterial{}}geometryCylinder{topFALSE}}2.将本例中关于Cylinder节点的参数进行更改,并观察每个参数的影响。实例2.圆柱基本几何造型。1.输入下例。#VRMLV2.0utf8Background{skyColor1.01.01.0}Shape{appearanceAppearance{materialMaterial{}}geometrySphere{radius1.6}}2.将Sphere节点的参数进行更改,并观察更改后的效果。实例3.长方体等基本几何造型的例子。#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{}}geometryBox{}}(2)空间变换VRML场景中的每一个造型都是基于当前坐标系进行创建的,而单一坐标系的使用将在很大程度上限制用户的空间想象力和创造力的发挥。在VRML场景中改变空间位置和空间朝向,需要进行VRML空间变换,也即变换造型创建所基于的空间坐标系。VRML空间变换使用Transform节点进行。实例1.楼梯造型1.代码如下:#VRMLV2.0utf8DEFstairShape{appearanceAppearance{materialMaterial{}}geometryBox{size1.51.05.0}}Transform{translation1.30.80.0children[USEstairTransform{translation1.30.80.0children[USEstairTransform{translation1.30.80.0children[USEstair]}]}]}2.效果图如下:实例2.立体鼠标1.代码如下:#VRMLV2.0utf8Background{skyColor1.01.01.0}DEFacrossmouseShape{appearanceAppearance{materialMaterial{diffuseColor1.01.00.0}}geometryCylinder{radius0.2height4.0}}Shape{appearanceAppearance{materialMaterial{diffuseColor0.60.40.2}}geometryBox{}}Transform{rotation1001.571children[USEacrossmouse]}Transform{rotation0011.571children[USEacrossmouse]}2.效果图如下:实例1.广告牌。1.代码如下:#VRMLV2.0utf8Shape{appearanceAppearance{textureImageTexture{url2.jpg}}geometryBox{size220.04}}Transform{translation00-0.1children[Shape{appearanceAppearance{materialMaterial{diffuseColor011}}geometryBox{size220.16}}]}2.其效果如下:实例2.视频纹理。1.代码如下:#VRMLV2.0utf8Background{skyColor111}Transform{translation00-0.1children[Shape{appearanceAppearance{materialMaterial{diffuseColor0.50.60.1}}geometryBox{size1580.2}}]}Shape{appearanceAppearance{textureDEFmpegMovieTexture{urldahanzhan.mpegloopTRUE#speed0.1}}geometryBox{size1270.1}}2.效果图如下:(4)VRML动画VRML动画依据一个给定的时间传感器以及一系列插补器节点对场景中的动画进行控制。节点不但拥有域属性,还有事件属性,分为出事件和入事件eventOut,eventIn,域则分为私有域和公共域exposedField。某个节点的事件出口和其他节点的事件入口之间用于传递事件的通道称为路由。通常情况下,时间传感器的startTime域被另一个对用户动作做出反应的传感器或脚本传来的时间事件设置。在startTime设定的时刻以前,时间传感器不产生任何事件,在该时刻到来时,将产生值为TRUE的isActive事件,并开始产生time,cycleTime和fraction_changed事件,time事件是一个总保持当前时刻值的连续发生的事件,而其他与时间相关的事件则是周期性发生的事件。实例1.朝向插补器动画#VRMLV2.0utf8Background{skyColor111}DEFbarTransform{translation-6.000children[Shape{appearanceAppearance{materialMaterial{diffuseColor0.50.30ambientIntensity0.4specularColor0.70.70.6shininess0.20}}geometryCylinder{height6.0radius0.2}}]}DEFclockTimeSensor{cycleInterval8loopTRUE}DEFinter1OrientationInterpolator{key[00.1250.250.3750.50.6250.750.8751.0]keyValue[00-1000-10.87500-11.57100-12.35600-13.14100-13.92600-14.71100-15.49600-16.281]}DEFinter2PositionInterpolator{key[00.51.0]keyValue[-600000600]}ROUTEclock.fraction_changedTOinter1.set_fractionROUTEinter1.value_changedTObar.set_rotationROUTEclock.fraction_changedTOinter2.set_fraction#ROUTEinter2.value_changedTObar.set_translation效果图如下,该实例实现了物体自由转动的效果。实例2.位置插补器动画#VRMLV2.0utf8Background{skyColor111}DEFballTransform{children[Shape{appearanceAppearance{materialMaterial{diffuseColor0.580.510.09specularColor0.920.430.01ambientIntensity0.117shininess0.4}}geometrySphere{}}]}DEFclockTimeSensor{cycleInterval10loopTRUE}DEFinterPositionInterpolator{key[00.330.671]keyValue[-3.0003.000030-300]}ROUTEclock.fraction_changedTOinter.set_fractionROUTEinter.value_changedTOball.set_translation该实例实现了造型的自由运动实例3.标量插补器动画#VRMLV2.0utf8Background{skyColor111}DEFrotTransform{children[Shape{appearanceAppearance{materialDEFcolorMaterial{diffuseColor0.80.50.8transparency0}}geometrySphere{radius2}}Shape{appearanceAppearance{materialMaterial{diffuseColor100}}geometryCone{bottomRadius1height2}}]}DEFclockTimeSensor{cycleInterval10loopTRUE}DEFinter1ScalarInterpolator{key[00.250.50.751]keyValue[00.500.50]}DEFinter2OrientationInterpolator{key[00.1250.250.3750.50.6250.750.8751]keyValue[1110.01110.7851111.5711112.3561113.1411114.7111115.4961116.281]}ROUTEclock.fraction_changedTOinter1.set_fractionROUTEinter1.value_changedTOcolor.set_transparencyROUTEclock.fraction_changedTOinter2.set_fractionROUTEinter2.value_changedTOrot.set_rotation该实例通过标量插补,实现了物体透明度的变化。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功