Download presentation
Presentation is loading. Please wait.
Published byGarry Wilson Modified over 9 years ago
1
111/22/2015 22:40 UML VRML 2.0 Scene Graph Structure Group Transformation Shape Nodes
2
211/22/2015 22:40 UML Shape Node: Contained Nodes Shape Box Cone Cylinder Sphere Extrusion Text Point Set Indexed Line Set Indexed Face Set Elevation Grid FontStyleCoordinateColorNormal Texture Coordinate geometry Material Image, Movie PixelTexture Texture Transform Appearance appearance color coord color fontStyle normal texCoord material texture textureTransform
3
311/22/2015 22:40 UML Text Node Definition fontStyle Node Definition Text { exposedField MFString string [] exposedField SFNode fontStyle NULL exposedField MFFloat length [] exposedField SFFloat maxExtent 0.0 } FontStyle { field MFString family “SERIF” field SFBool horizontal TRUE field MFString justify “BEGIN” field SFSring language ““ field SFFloat size 1.0 field SFFloat spacing 1.0 field SFString style “PLAIN” field SFBool topToBottom TRUE field SFBool leftToRight TRUE }
4
411/22/2015 22:40 UML Appearance & Material Nodes Appearance { exposedField SFNode material NULL exposedField SFNode texture NULL exposedField SFNode textureTransform NULL } Material { exposedField SFFloat ambientIntensity 0.2 exposedField SFColor diffuseColor 0.8 0.8 0.8 exposedField SFColor emissiveColor 0 0 0 exposedField SFFloat shininess 0.2 exposedField SFColor specularColor 0 0 0 exposedField SFFloat transparency 0 }
5
511/22/2015 22:40 UML Texture Node Definitions ImageTexture { exposedField MFString url [] field SFBool repeatS TRUE feild SFBool repeatT TRUE } PixelTexture { exposedField SFImage image 0 0 0 field SFBool repeatS TRUE feild SFBool repeatT TRUE }
6
611/22/2015 22:40 UML Texture Node Definitions, Continued MovieTexture { exposedField SFBool loop FALSE exposedField SFFloat speed 1 exposedField SFTime startTime 0 exposedField SFTime stopTime 0 exposedField MFString url [] field SFBool repeatS TRUE field SFBool repeatT TRUE eventOut SFFloat duration_changed eventOut SFBool isActive }
7
711/22/2015 22:40 UML Lighting in VRML 2.0 Directional Light Source DirectionalLight { exposedField SFFloat ambientIntensity 0 exposedField SFColor color 1 1 1 exposedField SFVec3f direction 0 0 -1 exposedField SFFloat intensity 1 exposedField SFBool on TRUE } Directional lights are “scoped” to illuminate only objects in their group.
8
811/22/2015 22:40 UML Lighting in VRML 2.0 Point Light Sources PointLight { exposedField SFFloat ambientIntensity 0 exposedField SFVec3f attenuation 1 0 0 exposedField SFColor color 1 1 1 exposedField SFFloat intensity 1 exposedField SFVec3f location 0 0 0 exposedField SFBool on TRUE exposedField SFFloat radius 100 } Scoping for the PointLight is given by the radius field, beyond which no objects are illuminated
9
911/22/2015 22:40 UML Lighting in VRML 2.0 Spotlights SpotLight { exposedField SFFloat ambientIntensity 0 exposedField SFVec3f attenuation 1 0 0 exposedField SFFloat beamwidth 1.570796 exposedField SFColor color 1 1 1 exposedField SFFloat cutOffAngle 0.785398 exposedField SFVec3f direction 0 0 -1 exposedField SFFloat intensity 1 exposedField SFVec3f location 0 0 0 exposedField SFBool on TRUE exposedField SFFloat radius 100 }
10
1011/22/2015 22:40 UML Transform Node Definition Transform { enventInMFNode addChildren eventInMFNode removeChildren exposedFieldSFVec3f center 0 0 0 exposedFieldMFNode children [] exposedFieldSFRotation rotation 0 0 1 0 exposedFieldSFVec3f scale 1 1 1 exposedFieldSFRotation scaleOrientation 0 0 1 0 exposedFieldSFVec3f translation 0 0 0 fieldSFVec3f bboxCenter 0 0 0 fieldSFVec3f bboxSize -1 -1 -1 } Order of application: T(translation) T(rotation) T(scale) {children}
11
1111/22/2015 22:40 UML GroupNode Definition Transform { enventInMFNode addChildren eventInMFNode removeChildren exposedFieldMFNode children [] fieldSFVec3f bboxCenter 0 0 0 fieldSFVec3f bboxSize -1 -1 -1 }
12
1211/22/2015 22:40 UML Viewing in VRML 2.0 Viewpoint { eventIn SFBool set_bind exposedField SFFloat fieldOfView 0.785396 exposedField SFBool jump TRUE exposedField SFRotation orientation 0 0 1 0 exposedField SFVec3f position 0 0 10 field SFString description ““ eventOut SFTime bindTime eventOut SFBool isBound }
13
1311/22/2015 22:40 UML Sound in VRML 2.0 Definition of Sound Node Sound { exposedField SFVec3f direction 0 0 1 exposedField SFFloat intensity 1 exposedField SFVec3f location 0 0 0 exposedField SFFloat maxBack 10 exposedField SFFloat maxFront 10 exposedField SFFloat minBack 1 exposedField SFFloat minFront 1 exposedField SFFloat priority 0 exposedField SFNode source NULL field SFBool spatialize TRUE }
14
1411/22/2015 22:40 UML Sound in VRML2.0 Definition of AudioClip Node AudioClip { exposedField SFString description ““ exposedField SFBool loop FALSE exposedField SFFloat pitch 1.0 exposedField SFTime startTime 0 exposedField SFTime stopTime 0 exposedField MFString url [] eventOut duration_changed eventOut isActive }
15
1511/22/2015 22:40 UML Spatial Sound Pattern in VRML 2.0 location minBack maxBack minFront maxFront Constant intensity Linear Attenuation direction
16
1611/22/2015 22:40 UML Internode Communication: Events Node ANode B Node C eventOut eventIn Connection by a ROUTE
17
1711/22/2015 22:40 UML Internode Communication Node Field Classes field Private node member exposedField Public node member eventIn Event received by node eventOut Event sent by node set_ Event received by node _changed Event sent by node Type and value of events correspond to type and value of node fields.
18
1811/22/2015 22:40 UML Internode Communication Route Syntax DEF T1 Transform {... } DEF T2 Transform {... } DEF T3 Transform {... }... ROUTE T1.translation_changed TO T2.set_translation ROUTE T2.translation_changed TO T3.set_translation T1T2T3 translation
19
1911/22/2015 22:40 UML Event Generators: Touch Sensor = Shapes Sensed
20
2011/22/2015 22:40 UML Event Generators: Touch Sensor TouchSensor { exposedField SFBool enabled TRUE eventOut SFVec3f hitNormal_changed eventOut SFVec3f hitPoint_changed eventOut SFVec2f hitTexCoord_changed eventOut SFBool isActive eventOut SFBool isOver eventOut SFTime touchTime }
21
2111/22/2015 22:40 UML Touch Sensor Example Group { children [ DEF TS TouchSensor { } Shape { appearance Appearance { material Material { diffuseColor 0 0.5 0 } geometry Sphere {} } DEF Highlight DirectionalLight { color 1 0 0 on FALSE } DEF ActiveLight DirectionalLight { color 0 0 1 on FALSE } ] ROUTE TS.isOver TO Highlight.set_on ROUTE TS.isActive TO ActiveLight.set_on }
22
2211/22/2015 22:40 UML Touch Sensor Example Group { children [ DEF TS TouchSensor { } Shape { appearance Appearance { material Material { diffuseColor 0 0.5 0 } geometry Sphere {} } Sound { maxBack 1000 maxFront 1000 source DEF Audio AudioClip { url “horse.wav” } ] ROUTE TS.touchTime TO Audio.startTime }
23
2311/22/2015 22:40 UML Adding Behavior to Objects TimeSensorInterpolatorGeneral Node [0,1] ScalarInterpolator PositionInterpolator OrientationInterpolator CoordinateInterpolator ColorInterpolator Maps [0,1] to field data type values. Generates time vary- ing scalar in range [0,1]
24
2411/22/2015 22:40 UML Time Sensor TimeSensor { exposedField SFTime cycleInterval 1 exposedField SFBool enabled TRUE exposedField SFBool loop FALSE exposedField SFTime startTime 0 exposedField SFTime stopTime 0 eventOut SFTime cycleTime eventOut SFFloat fraction_changed eventOut SFBool isActive eventOut SFTime time } loop=TRUE loop=FALSE startTimestopTimecycleInterval
25
2511/22/2015 22:40 UML Position Interpolator PositionInterpolator { eventIn SFFloat set_fraction exposedField MFFloat key [] exposedField MFVec3f keyValue [] eventOut SFVec3f value_changed } y z x Input: [ 0 1 ]
26
2611/22/2015 22:40 UML Position Animation Example Def T Transform { translation 0 5 0 children [ Shape { geometry Cone {} appearance Appearance { material Material { diffuseColor 1 0 0 } ] } Def P PositionInterpolator { key [0, 0.5, 1] keyValue [ 0 0 0, 4 0 0, 0 0 0] } Def TS TimeSensor { stopTime -1 loop TRUE } ROUTE TS.fraction_changed TO P.set_fraction ROUTE P.value_changed TO T.set_translation
27
2711/22/2015 22:40 UML Java 3D: Class Hierarchy
28
2811/22/2015 22:40 UML Java 3D: Viewing Classes Locates a view within scene Contains most of view state Contains information about physical screen 3D version of Abstract Windowing Toolkit
29
2911/22/2015 22:40 UML Java 3D: Sample Code to Build Scene Graph Shape3D myShape1 = new Shape3D(myGeometry1, myAppearance1); Shape3D myShape2 = new Shape3D(myGeometry2, myAppearance2); BranchGroup myBranch = new BranchGroup(); myBranch.addChild(myShape1); myBranch.addChild(myShape2); myBranch.compile(); VirtualUniverse myUniverse = new VirtualUniverse(); Locale myLocale = new Locale(myUniverse); myLocale.addBranchGraph(myBranch);
30
3011/22/2015 22:40 UML Java 3D: Scene Graph Built
31
3111/22/2015 22:40 UML Java 3D; Node Class Hierarchy
32
3211/22/2015 22:40 UML Java 3D “Hello Universe” Program public class HelloUniverse extends Applet { public BranchGroup createSceneGraph() { // Create the root of the branch graph BranchGroup objRoot = new BranchGroup(); // Create the TransformGroup node and initialize it to the // identity. Enable the TRANSFORM_WRITE capability so that // our behavior code can modify it at run time. Add it to // the root of the subgraph. TransformGroup objTrans = new TransformGroup(); objTrans.setCapability( TransformGroup.ALLOW_TRANSFORM_WRITE); objRoot.addChild(objTrans); // Create a simple Shape3D node; add it to the scene graph. objTrans.addChild(new ColorCube(0.4)); // Create a new Behavior object that will perform the // desired operation on the specified transform and add // it into the scene graph.
33
3311/22/2015 22:40 UML Java 3D “Hello Universe” Program, contd. Transform3D yAxis = new Transform3D(); Alpha rotationAlpha = new Alpha(-1, 4000); RotationInterpolator rotator = new RotationInterpolator( rotationAlpha, objTrans, yAxis, 0.0f, (float) Math.PI*2.0f); BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); rotator.setSchedulingBounds(bounds); objRoot.addChild(rotator); // Have Java 3D perform optimizations on this scene graph. objRoot.compile(); return objRoot; } public HelloUniverse() { // Create the scene; attach it to the virtual universe BranchGroup scene = createSceneGraph(); SimpleUniverse u = new SimpleUniverse(canvas3d); u.getViewingPlatform().setNominalViewingTransform(); u.addBranchGraph(scene); }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.