Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java3D Overview Scene graph Java 3D classes Describing objects Groups, transforms Behaviors, interpolators Lighting.

Similar presentations


Presentation on theme: "Java3D Overview Scene graph Java 3D classes Describing objects Groups, transforms Behaviors, interpolators Lighting."— Presentation transcript:

1 Java3D Overview Scene graph Java 3D classes Describing objects Groups, transforms Behaviors, interpolators Lighting

2 What is Java3D API Applications or Applets “Write once, run anywhere”  platform independent (IBM AIX, HP-UX, Linux, SGI IRIX, Solaris/Sparc, Windows)  display environments scalable scene graph-based

3 Java3D – Overview Java JRE SDK Java 3D JRE SDK OpenGL DirectX Code examples in distribution Applications scientific visualization, animation, web design, simulations, virtual world construction (CAVE), training, games, design automation

4 Java3D Scene Graph VirtualUniverse to contain all 3D data typically one per application SimpleUniverse Locale object View describes how to view 3D content multiple views per universe View Platform (movable) Content Branch describes 3D content

5 Java3D renderer Canvas 3D surface onto which a View renders one canvas per view there can be multiple canvases per app while (true) { Process input if (exit request)break Check for collisions Perform behaviors Start playing sounds Traverse scene graph and render objects } Cleanup

6 Java3D classes javax.media.j3d package javax.media.j3d.VirtualUniverse  Enumeration getAllLocales( ) javax.media.j3d.Locale  VirtualUniverse getVirtualUniverse( )  void addBranchGraph( Branchgroup branchGroup )  void removeBranchGraph( Branchgroup branchGroup )  Enumeration getAllBranchGraphs( ) javax.media.j3d.SceneGraphObject

7 Java3D classes javax.media.j3d.Node  Shapes, Groups, Sounds, Lights, etc.  parent node  location  bounding volume javax.media.j3d.NodeComponent  attributes  Shape geometry, Shape appearance, Shape texture, etc.

8 Java3D classes javax.vecmath package javax.vecmath.Tuple3d Vector3d Point3d, Color3d, etc.

9 Coordinate System, Elements Coordinate system Right-handed  +X is to the right  +Y is up  +Z is towards the viewer Angles in radians Distance in meters Elements in a Geometry Coordinates Normals Colors TextureCoordinates

10 Simple Java3D application Construct view branch Canvas3D SimpleUniverse  VirtualUniverse, Locale, BranchGroup, TransformGroup, ViewPlatform, View Construct content branch BranchGroup TransformGroup Shape3D, Light, Sound... Behavior

11 Shape3D Fundamental mean of describing object javax.media.j3d.Shape3D (Leaf) Geometry void setGeometry(Geometry geometry) Appearance void setAppearance(Appearance appearance)

12 Geometry javax.media.j3d.Geometry (NodeComponent) GeometryArray LineArray, PointArray, TriangleArray, QuadArray Indexed~ Text3D Raster raster image

13 Appearance javax.media.j3d.Appearance (NodeComponent) Specifies how to render Geometry sibling Color (intrinsic) and shading (flat, Gouraud)  ColoringAttributes  Material Transparency  TransparencyAttributes Line, point, polygon attributes  LineAttributes, PointAttributes, PolygonAttributes Rendering control Texture mapping

14 Loading content Loader creates scene graph elements from a file com.sun.j3d.loaders only the interface included in Java 3D Usage import loader create loader object Scene variable load file insert Scene into the scene graph Available loaders 3DS, COB, DEM, DXF, IOB, LWS, NFF, OBJ, PDB, PLAY, SLD, VRT, VTK, WRL

15 Grouping exactly one parent, arbitrary children javax.media.j3d.Group (Node) BranchGroup, OrderedGroup, SharedGroup (Link), Switch, TransformGroup child rendering order determines Java 3D can perform sorting for better rendering efficiency BranchGroups can be attached to Locale --> it makes it live --> constrains by capabilities can be compiled

16 Transforming TransformGroup new coordinate system relative to parent Transform3D (Object) Transform3D describes translation, rotation, and scaling A transform may be built from and represented by a 4x4 matrix, or by helper utility methods TransformGroup creates a new coordinate system for its children, transformed by a Transform3D object All children are rendered. Rendering is done in any order to allow for optimal rendering paths and parallelism in the rendering process.

17 Behaviors javax.media.j3d.Behavior code to run ( processStimulus ) wakeup conditions  frame or milliseconds have elapsed  AWT event  transform change  collision scheduling bounds  activation radius intersects scheduling bounds  runs only when necessary  common error - forgetting scheduling bounds

18 Interpolators javax.media.j3d.Interpolator simple behaviors  vary a parameter from starting to ending value  Time-to-Alpha mapping (Alpha (Object) )  Alpha-to-Value mapping  Target (TransformGroup) PositionInterpolator, PositionPathInterpolator, ColorInterpolator, etc.

19 Lighting the environment Types of lights ambient - AmbientLight directional - DirectionalLight point - PointLight  attenuation spot – SpotLight Light attributes on/off color bounding volume and scope  by default universal scope again: common error - forgetting scheduling bounds

20 Misc Much more Fog Sound FastScript3D etc

21 Summary – Building blocks 1. Reading data from input files 2. Creation of a Java3D scene 3. Simple geometry 4. Interaction 5. Animation 6. Lights and textures 7. Advanced modelling

22 References 1998 SUN presentation: http://java.sun.com/products/java- media/3D/collateral/presentation/http://java.sun.com/products/java- media/3D/collateral/presentation/ Java3D 1.3 API documentation: http://java.sun.com/products/java- media/3D/forDevelopers/J3D_1_3_API/j3dapi/index.html http://java.sun.com/products/java- media/3D/forDevelopers/J3D_1_3_API/j3dapi/index.html Java3D latest release page: http://java.sun.com/products/java- media/3D/index.jsphttp://java.sun.com/products/java- media/3D/index.jsp A Java3D tutorial: http://www.j3d.org/tutorials/raw_j3d/http://www.j3d.org/tutorials/raw_j3d/ Yet another tutorial: http://www.acm.org/crossroads/xrds5- 2/ovp52.htmlhttp://www.acm.org/crossroads/xrds5- 2/ovp52.html Thanks to Martin Cadik from CTU in Prague.

23 Questions?


Download ppt "Java3D Overview Scene graph Java 3D classes Describing objects Groups, transforms Behaviors, interpolators Lighting."

Similar presentations


Ads by Google