</Transform>
<Transform scale='0.2 0.2 0.2' translation='1 -0.5 -142'>
<Inline url='"gongluqiao.x3d"' bboxCenter='0 0.1621 0' bboxSize='0.6 4.3242 0.6'/>
</Transform>
<Transform scale='0.2 0.2 0.2' translation='1 -0.5 -162'>
<Inline url='"gongluqiao.x3d"' bboxCenter='0 0.1621 0' bboxSize='0.6 4.3242 0.6'/>
</Transform>
<Transform scale='1 1 1' translation='1 -8 -62'>
<Inline url='"hailang.x3d"' bboxCenter='0 0.1621 0' bboxSize='0.6 4.3242
0.6'/>
</Transform>
</Group>
</Scene>
</X3D>
公路桥子程序,gongluqiao.x3d源程序。主要设计斜拉桥上面的公路和行使的汽车,利用基本几何节点、复杂节点和智能动态感知节点等实现动画效果。gongluqiao.x3d源程序展示如下:
<?xml version="1.0" encoding="UTF-8"?>
<X3D profile="Immersive" version="3.1">
<head>
<meta content="gongluqiao.x3d" name="filename"/>
<meta content="zjz-zjr-zjd" name="author"/>
<meta content="*enter name of original author here*" name="creator"/>
<meta content="*enter copyright information here* Example: Copyright (c) Web3D Consortium Inc. 2006" name="rights"/>
<meta content="*enter online Uniform Resource Identifier (URI) or Uniform Resource Locator (URL) address for this file here*" name="identifier"/>
<meta content="X3D-Edit, http://www.web3d.org/x3d/content/README.X3D-Edit.html" name="generator"/>
</head>
<Scene>
<Background DEF="_Background" skyColor='0.98 0.98 0.98'>
</Background>
<Viewpoint DEF="View1" fieldOfView='0.6024' orientation='0 1 0 1.571' position='80 0 -50'
description="View1">
</Viewpoint>
<Viewpoint DEF="View2" fieldOfView='0.6024' orientation='1 0 0 0' position='0 20 158'
description="View2">
</Viewpoint>
<Viewpoint DEF="View3" fieldOfView='0.6024' orientation='0 1 0 3.141' position='0 10
-258' description="View3">
</Viewpoint>
<Transform rotation='0 1 0 1.571' scale='4 3 2' translation='0 -10 -60'>
<Inline url='"gonglu.x3d"'/></Transform>
<Transform DEF="tree1" scale='2 2 2' translation='-18.5 -10 -35'>
<Billboard axisOfRotation='0 1 0'>
<Shape>
<Appearance>
<ImageTexture url='"tree1.png"'>
</ImageTexture>
</Appearance>
<IndexedFaceSet DEF="TreeFace" coordIndex='0,1,2,3' solid='false'
texCoordIndex='0,1,2,3'>
<Coordinate point='-1.51 0.05 0,1.51 0.05 0,1.51 3.05 0,-1.51 3.05 0'>
</Coordinate>
<TextureCoordinate point='0 0,1 0,1 1,0 1'>
</TextureCoordinate>
</IndexedFaceSet>
</Shape>
</Billboard>
</Transform>
<Transform translation='0 0 30'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 20'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 10'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 0'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 -10'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 -20'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 -30'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 -40'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 -50'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 -60'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 -70'>
<Transform USE="tree1"/>
</Transform>
<Transform translation='0 0 -80'>
<Transform USE="tree1"/>
</Transform>
<Transform DEF="tree2" scale='2 2 2' translation='18.5 -10 -35'>
<Billboard axisOfRotation='0 1 0'>
<Shape>
<Appearance>
<ImageTexture url='"tree1.png"'>
</ImageTexture>
</Appearance>
<IndexedFaceSet DEF="TreeFace1" coordIndex='0,1,2,3' solid='false'
texCoordIndex='0,1,2,3'>
<Coordinate point='-1.51 0.05 0,1.51 0.05 0,1.51 3.05 0,-1.51 3.05 0'>
</Coordinate>
<TextureCoordinate point='0 0,1 0,1 1,0 1'>
</TextureCoordinate>
</IndexedFaceSet>
</Shape>
</Billboard>
</Transform>
<Transform translation='0 0 30'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 20'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 10'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 0'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 -10'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 -20'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 -30'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 -40'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 -50'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 -60'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 -70'>
<Transform USE="tree2"/>
</Transform>
<Transform translation='0 0 -80'>
<Transform USE="tree2"/>
</Transform>
<Transform DEF="car" scale='1 1 1' translation='6 -10 -57.9635'>
<Inline url='"lanche.x3d"' bboxCenter='-0.170852 1.17429 2.90981' bboxSize='3.1827 2.35271
7.65801'/></Transform>
<Transform DEF="car1" rotation='0 1 0 3.141' scale='1 1 1' translation='-12 -10 -50.1217'>
<Inline url='"hongche.x3d"' bboxCenter='-0.170852 1.17429 2.90981' bboxSize='3.1827
2.35271 7.65801'/></Transform>
<TimeSensor DEF="Time" cycleInterval='10' loop='true'>
</TimeSensor>
<PositionInterpolator DEF="run" key='0,0.2,0.4,0.6,0.8,1' keyValue='6 -10 -10,6 -10 -30,6
-10 -50,6 -10 -70,6 -10 -90,6 -10 -120'>
</PositionInterpolator>
<TimeSensor DEF="Time1" cycleInterval='3' loop='true'>
</TimeSensor>
<PositionInterpolator DEF="run1" key='0,0.2,0.4,0.6,0.8,1' keyValue='-12 -10 -120,-12 -10
-90,-12 -10 -70,-12 -10 -50,-12 -10 -30,-12 -10 -10'>
</PositionInterpolator>
<ROUTE fromNode="Time" fromField="fraction_changed" toNode="run" toField="set_fraction"/>
<ROUTE fromNode="run" fromField="value_changed" toNode="car" toField="set_translation"/>
<ROUTE fromNode="Time1" fromField="fraction_changed" toNode="run1" toField="set_fraction"/>
<ROUTE fromNode="run1" fromField="value_changed" toNode="car1" toField="set_translation"/>
</Scene>
虚拟现实X3D跨江斜拉大桥三维立体场景设计运行程序,首先启动BS Contact VRML-X3D 7.0浏览器,然后打开“X3D源程序实例/px3d3.x3d”,即可运行虚拟现实X3D跨江斜拉大桥三维立体场景造型程序,如图4所示。

图4 跨江斜拉大桥景观场景效果图
五、结语
本文对虚拟现实X3D动画游戏进行开发与设计,利用基本几何节点、复杂节点、组节点、控制节点实现动画效果,使X3D世界更加生动、真实、鲜活。使浏览者真正体验身临其境的感受。
利用X3D虚拟现实复杂几何节点含盖PointSet“点”节点、IndexedLineSet“线”节点、IndexedFaceSet“面”节点、IndexedTriangleFanSet节点以及Extrusion挤出造型等创建复杂三维立体场景和造型。利用智能感知运动节点,即PositonInterpolator位置插补器节点是空间造型位置移动节点,用来描述一系列用于动画的关键值,使物体移动形成动画。实现虚拟空间物体(如:海浪、汽车运动、云)的运动。
本文着重介绍了X3D虚拟现实动画游戏设计,通过X3D复杂节点、智能感知节点的学习进一步了解和掌握虚拟现实X3D三维立体动画设计,掌握较复杂虚拟现实X3D编程方法。
|