1 / 37

X3D 教程

X3D 教程. 掌握 X3D 第四节. 主要内容:基本动画. 掌握 X3D 第四节. ViewPoint. 视点 orientation 方向坐标 position 位置 set_bind 为 true 时启用这个视点 , 为 false 时关闭. 掌握 X3D 第四节. 原来 <X3D> <Scene> <Shape> <Appearance> <Material diffuseColor="0 1 1"/> </Appearance> <Box/>

Download Presentation

X3D 教程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. X3D教程

  2. 掌握X3D 第四节 主要内容:基本动画

  3. 掌握X3D 第四节 ViewPoint • 视点 • orientation 方向坐标 • position 位置 • set_bind 为true时启用这个视点,为false时关闭

  4. 掌握X3D 第四节 • 原来 • <X3D> • <Scene> • <Shape> • <Appearance> • <Material diffuseColor="0 1 1"/> • </Appearance> • <Box/> • </Shape> • </Scene> • </X3D>

  5. 掌握X3D 第四节 • 设置视点 • <Viewpoint orientation="0.5 0 0 -0.5" position="0 15 15"/> • <Viewpoint orientation="0.5 0 0 -0.5" position="4 2 10"/>

  6. 掌握X3D 第四节 动画流程 ROUTE ROUTE TimeSensor Interpolation Transform……

  7. 掌握X3D 第四节 DEF名字 • DEF属性可指定名字 • <Transform DEF="thebox"> • <Shape><Box /></Shape> • </Transform> • <Transform> • <Shape><Box DEF="thebox /></Shape> • </Transform>

  8. 掌握X3D 第四节 TimeSensor • cycleInterval 循环周期 • fraction_changed 若TimeSensor启用,它会不断传出0-1之间的小数,表示在循环周期中的位置。 • startTime 起始时间 • stopTime 结束时间 • Loop循环或者只有一个周期

  9. 掌握X3D 第四节 TimeSensor • <TimeSensor DEF="Clock" cycleInterval="5.0" loop="true"/>

  10. 掌握X3D 第四节 动画流程 ROUTE ROUTE TimeSensor DEF="Clock" Interpolation Transform DEF="thebox"

  11. 掌握X3D 第四节 Interpolation元件 • ColorInterpolator • CoordinateInterpolator • CoordinateInterpolator2D • NormalInterpolator • OrientationInterpolator • PositionInterpolator • PositionInterpolator2D • ScalarInterpolator

  12. 掌握X3D 第四节 • 这个元件的所有节点都必须配合节点才能使用 • 随时间改变它的值 • Key属性表示时间点,keyValue表示某个时间点对应的值 • 时间可由TimeSensor 的fraction_changed决定 • Eg坐标改变 • <XXX key=" 0.0 0.25 0.5 0.75 1.0" keyValue=" -4.0 0.0 0.0 -2.0 0.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 4.0 0.0 0.0"/>

  13. 掌握X3D 第四节 • 当Interpolation 的set_fraction接收到TimeSensor的fraction_changed事件时会知道现处的时间点,再根据key和keyValue输出相应的值,这时value_changed会触发并传出这个对应的值。

  14. 掌握X3D 第四节 PositionInterpolator改变位置 • <PositionInterpolator DEF="TreePath" key=" 0.0 0.25 0.5 0.75 1.0" keyValue=" -4.0 0.0 0.0 -2.0 0.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 4.0 0.0 0.0"/>

  15. 掌握X3D 第四节 动画流程 ROUTE ROUTE TimeSensor DEF="Clock" Interpolation PositionInterpolator DEF="TreePath" Transform DEF="thebox"

  16. 掌握X3D 第四节 事件传递ROUTE • 从某一节点的属性传递到另外某一节点的属性中 • 语法 • <ROUTE fromNode="NodeA" fromField="fieldA1" toNode="NodeB" toField="fieldB1"/>

  17. 掌握X3D 第四节 • <ROUTE fromField="fraction_changed" fromNode="Clock" toField="set_fraction" toNode="TreePath"/>

  18. 掌握X3D 第四节 动画流程 Clock. fraction_changed TreePath. set_fraction ROUTE ROUTE TimeSensor DEF="Clock" Interpolation PositionInterpolator DEF="TreePath" Transform DEF="thebox"

  19. 掌握X3D 第四节 • <ROUTE fromField="value_changed" fromNode="TreePath" toField="translation" toNode="thebox"/> • set_translation 事件为Transform设置位置的属性

  20. 掌握X3D 第四节 动画流程 Clock. fraction_changed TreePath. set_fraction TreePath. value_changed thebox. translation ROUTE ROUTE TimeSensor DEF="Clock" Interpolation PositionInterpolator DEF="TreePath" Transform DEF="thebox"

  21. 掌握X3D 第四节 • 这样就能动了

  22. 掌握X3D 第四节 例子 • <Viewpoint position="0 3 10"/> • <Transform DEF="T"> • <Shape> • <Box/> • </Shape> • </Transform> • <TimeSensor DEF="time" loop="true"/> • <PositionInterpolator DEF="P" key="0 0.3 0.7" keyValue="0 0 0, 1 0 0, 0 1 0"/> • <ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode="P"/> • <ROUTE fromField="value_changed" fromNode="P" toField="translation" toNode="T"/>

  23. 掌握X3D 第四节 CoordinateInterpolator • 改变坐标值 • 例:改变三角形形状 • <Shape> • <IndexedFaceSet coordIndex="0 1 2 " solid="false"> • <Coordinate DEF="coord" point="-1 0 0, 1 0 0, -1 1 0"/> • </IndexedFaceSet> • </Shape>

  24. 掌握X3D 第四节 • <TimeSensor DEF="time" cycleInterval="3" loop="true"/> • <CoordinateInterpolator DEF="C" key="0 0.5 1" keyValue="-1 0 0, 1 0 0, -1 1 0, -1 0 0, 1 0 0, 0 1 0, -1 0 0, 1 0 0, 1 1 0"/> • <ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode="C"/> • <ROUTE fromField="value_changed" fromNode="C" toField="point" toNode="coord"/>

  25. 掌握X3D 第四节 OrientationInterpolator • 旋转

  26. 掌握X3D 第四节 • <Transform DEF="transform"> • <Shape> • <Box/> • <Appearance> • <Material diffuseColor="0 0 1"/> • </Appearance> • </Shape> • </Transform>

  27. 掌握X3D 第四节 • <TimeSensor DEF="time" loop="true"/> • <OrientationInterpolator DEF="Or" key="0 0.3 0.7" keyValue="0 0 1 0, 1 0 0 2, 0.5 0 1 0.4"/> • <ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode="Or"/> • <ROUTE fromField="value_changed" fromNode="Or" toField="rotation" toNode="transform"/>

  28. 掌握X3D 第四节 例:月球围绕地球转 • 制作地球 • <Transform DEF="transform"> • <Shape> • <Appearance> • <ImageTexture url="2.jpg" /> • </Appearance> • <Sphere /> • </Shape> • </Transform>

  29. 掌握X3D 第四节 • 地球自转 OrientationInterpolato • <TimeSensor DEF="time" loop="true" cycleInterval="5.0" /> • <OrientationInterpolator DEF="Or" key="0 0.5 1" keyValue="0 0 1 0, 0 1 0 3.14,0 1 0 6.28"/> • <ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode="Or"/> • <ROUTE fromField="value_changed" fromNode="Or" toField="rotation" toNode="transform"/> • 保存为earth.x3d

  30. 掌握X3D 第四节 • 同样的方法制作月球 • <Transform DEF="transform"> • <Shape> • <Appearance> • <ImageTexture url="3.jpg" /> • </Appearance> • <Sphere radius="0.4" /> • </Shape> • </Transform>

  31. 掌握X3D 第四节 • 月球自转 OrientationInterpolato • <TimeSensor DEF="time" loop="true" cycleInterval="5.0" /> • <OrientationInterpolator DEF="Or" key="0 0.5 1" keyValue="0 0 1 0, 0 1 0 3.14,0 1 0 6.28"/> • <ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode="Or"/> • <ROUTE fromField="value_changed" fromNode="Or" toField="rotation" toNode="transform"/> • 保存为moon.x3d

  32. 掌握X3D 第四节 • 引用地球也月球 • <Transform> • <Inline url="earth.x3d"/> • </Transform> • <Transform DEF="moon"> • <Inline url="moon.x3d"/> • </Transform>

  33. 掌握X3D 第四节 • TimeSensor • <TimeSensor DEF="time" loop="true" cycleInterval="15"/>

  34. 掌握X3D 第四节 • 位置设置 • <PositionInterpolator DEF="P" key="0 0.125 0.25 0.375 0.5 0.625 0.7 0.825 1" keyValue="5 0 0,3.5 0 3.5, 0 0 5,-3.5 0 3.5, -5 0 0,-3.5 0 -3.5,0 0 -5,3.5 0 -3.5,5 0 0 "/> 3 4 2 5 1 6 8 7

  35. 掌握X3D 第四节 • 传递 • <ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode="P"/> • <ROUTE fromField="value_changed" fromNode="P" toField="translation" toNode="moon"/>

More Related