1 / 23

Java3D

Java3D. Overview Scene graph Java 3D classes Describing objects Groups, transforms Behaviors, interpolators Lighting. What is Java3D . API Applications or Applets “Write once, run anywhere” platform independent (IBM AIX, HP-UX, Linux, SGI IRIX, Solaris/Sparc, Windows)

Download Presentation

Java3D

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. 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. 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 Java3D – Overview

  4. 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 Java3D Scene Graph

  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. 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 Loading content

  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) <0,1>) • 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 • Reading data from input files • Creation of a Java3D scene • Simple geometry • Interaction • Animation • Lights and textures • Advanced modelling

  22. References • 1998 SUN 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 • Java3D latest release page: http://java.sun.com/products/java-media/3D/index.jsp • A Java3D tutorial: http://www.j3d.org/tutorials/raw_j3d/ • Yet another tutorial: http://www.acm.org/crossroads/xrds5-2/ovp52.html Thanks to Martin Cadik from CTU in Prague.

  23. Questions?

More Related