你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 跟高手学编程
1.11 X3D虚拟现实动画设计(下)
 

</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编程方法。

 

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089