Selman, D. (2002) Java 3D Programming, Manning Publications
Download eBook PDF (PDF 4,500KB)
Download Source Code (ZIP 3,028KB)
Java 3D Programming steps programmers through the important design and implementation phases of developing a successful Java 3D application. The book provides invaluable guidance on whether to use Java 3D, user interface design, geometry creation, scene manipulation and final optimizations. The book does not attempt to exhaustively cover the API or replicate the official documentation but rather serves as a roadmap to alert programmers of design issues and potential pitfalls.
The author distills 12 months of using the Java 3D API for commercial projects, as well as innumerable discussions on the Java 3D email list into a book that all Java 3D developers will appreciate. Experienced Java 3D developers will applaud an authoritative resource containing the state-of-the-art in techniques and workarounds, while novice Java 3D programmers will gain a fast-track into Java 3D development, avoiding the confusion, frustration and time wasted learning Java 3D techniques and terminology.
Java 3D Programming comes complete with a comprehensive set of programming examples to illustrate the techniques, features, workarounds and bug fixes contained in the main text.
Readers of this book would include students and postgraduate researchers developing visualization applications for academia. Moderately experienced in Java, some experience of 3D graphics, little or no experience of Java 3D is needed. R+D s/w engineers at commercial institutions. Experienced Java developers, experienced with OpenGL or VRML, little or no experience with Java 3D.
1. What is Java 3D and is it for me?
1.1. Strengths
1.2. Weaknesses
1.3. System requirements (developer and end user)
1.5. Running the examples
2. 3D graphics programming
2.1. Learning 3D graphics programming
2.2. Projecting from 3D world coordinates to 2D screen coordinates
2.3. Lighting effects
2.4. Putting it together—MyJava3D
2.5. Summary
3. Getting started, Hello Java 3D!
3.1. Installation
3.2. Your first Java 3D application
3.3. Exercises for the reader
3.4. Summary
4. The scenegraph
4.1. Overview
4.2. What is a scenegraph?
4.3. Java 3D and the scenegraph
4.4. Elements of scenegraph design
4.5. Scenegraph advantages
4.6. Hierarchical control
4.7. Immediate mode vs. retained mode vs. mixed mode
4.8. Summary
5. Scenegraph node reference
5.1. Scenegraph compilation
5.2. Node
5.3. Bounds and CollisionBounds
5.4. Group
5.5. Switch
5.6. BranchGroup
5.7. OrderedGroup
5.9. Primitive
5.10. TransformGroup
5.11. Summary
6. Defining the universe
6.1. Locales and HiResCoord
6.2. View, ViewPlatform, and Locale
6.3. SimpleUniverse
6.4. Background geometry
6.5. Using multiple views
6.6. Summary
7. Data model design
7.1. Choosing a data model
7.2. Performance objectives
7.3. Summary
8. Geometry reference
8.1. Shape3D
8.2. Primitive
8.3. GeomBuffer
8.4. Rasters
8.5. Text2D
8.6. Text3D
8.7. Morph
8.8. Summary
9. Setting geometry appearances
9.1. Introduction
9.2. Appearance
9.3. ColoringAttributes
9.4. LineAttributes
9.5. Material
9.6. PointAttributes
9.7. PolygonAttributes
9.8. RenderingAttributes
9.9. TexCoordGeneration
9.10. TextureAttributes
9.11. Texture
9.12. TransparencyAttributes
9.13. Summary
10. Lights
10.1. Lights
10.2. Light node
10.3. AmbientLight
10.4. DirectionalLight
10.5. PointLight
10.6. SpotLight
10.7. Lighting, material attributes, and per-vertex colors
10.8. Summary
11. Behaviors—navigation, alignment, and LOD
11.1. Introduction
11.2. Behavior class
11.3. Anatomy of a typical behavior
11.4. Overview of the built-in behaviors
11.5. Overview of Wakeup criteria
11.6. Using keyboard behaviors
11.7. Using mouse behaviors
11.8. Billboard behavior
11.9. Using LOD behaviors
11.10. Summary
12. Using Interpolator behaviors
12.1. The Interpolator class
12.2. The Alpha class
12.3. Example of Interpolator usage
12.4. Using a cubic-spline interpolator
12.5. Summary
13. Writing custom behaviors
13.1. The BehaviorTest example
13.2. ObjectSizeBehavior
13.3. ExplodeBehavior
13.4. StretchBehavior
13.5. Using behaviors for debugging
13.6. Summary
14. Using texture images
14.1. Introduction
14.2. 3D texture coordinates
14.3. Texture and multiple levels of detail
14.4. TextureAttributes
14.5. Using transparent geometry with transparent texture images
14.6. Animated (video) texture mapping
14.7. Summary
15. Geometry utility classes and object loaders
15.1. Introduction
15.2. Triangulator, normal vector generator, stripifier
15.3. Object loaders
15.4. Summary
16. Object interaction?picking and collision detection
16.1. Introduction to picking
16.2. PickShapes
16.3. PickTool
16.4. PickCanvas
16.5. PickIntersection
16.6. PickResult
16.7. VRML picking example
16.8. Using picking for collision detection
16.9. Conclusions
17. Java 3D, Swing, and applets
17.1. Building the Java 3D Swing application
17.2. Adding support for running as an applet
17.3. Conclusions
18. Java 3D system architecture
18.1. Introduction
18.2. Threads running a Java 3D application
18.3. MasterControl
18.4. BehaviorScheduler
18.5. InputDeviceScheduler
18.6. Renderer
18.7. StructureUpdateThread
18.8. TimerThread
18.9. SceneGraphObject
18.10. Node types
18.11. Exception Strings
18.12. J3D DLL
18.13. Summary
Appendix A: Example code
A.1. List of examples
A.2. Installation notes
A.3. Instructions for running the examples
Appendix B: Programming and graphics resources online
Appendix C: Primitives, the geometry cache, and GeomBuffer
C.1. Box objects and GeomBuffer
C.2. Primitives and the geometry cache
C.3. GeomBuffer
Bibliography
Introduction to Computer Graphics: Using Java 2D and 3D (Undergraduate Topics in Computer Science), Springer
Download eBook PDF (PDF 2,616KB)
Download 2D Source Code (ZIP 67KB)
Download 3D Source Code (ZIP 636KB)
Download TOC (PDF 54KB)
Companion Website: http://public.rz.fh-wolfenbuettel.de/~klawonn/computergraphics/index.html
This book is an essential tool for second-year undergraduate students and above, providing clear and concise explanations of the basic concepts of computer graphics, and enabling the reader to immediately implement these concepts in Java 2D and/or 3D with only elementary knowledge of the programming language. Features: provides an ideal, self-contained introduction to computer graphics, with theory and practice presented in integrated combination; presents a practical guide to basic computer graphics programming using Java 2D and 3D; includes new and expanded content on the integration of text in 3D, particle systems, billboard behaviours, dynamic surfaces, the concept of level of detail, and the use of functions of two variables for surface modelling; contains many pedagogical tools, including numerous easy-to-understand example programs and end-of-chapter exercises; supplies useful supplementary material, including additional exercises, solutions, and program examples, at an associated website.
Introduction to Programming with Java 3D – Tutorial/Course Notes – Sun Microsystems, Inc / San Diego Supercomputer Center, University of California at San Diego
Download Tutorial Notes (PDF 3,052KB)
Java 3D is a new cross-platform API for developing 3D graphics applications in Java. Its feature set is designed to enable quick development of complex 3D applications and, at the same time, enable fast and efficient implementation on a variety of platforms, from PCs to workstations. Using Java 3D, software developers can build cross-platform applications that build 3D scenes programmatically, or via loading 3D content from VRML, OBJ, and/or other external files. The Java 3D API includes a rich feature set for building shapes, composing behaviors, interacting with the user, and controlling rendering details.
In this tutorial, participants learn the concepts behind Java 3D, the Java 3D class hierarchy, typical usage patterns, ways of avoiding common mistakes, animation and scene design techniques, and tricks for increasing performance and realism.
Abstract | Preface | Lecturer information | Using the Java examples | Tutorial slides
Bouvier, D. J. (1999) Getting Started with the Java 3D API – A Tutorial for Beginners, Sun Microsystems, Inc.
The Java 3D API is a hierarchy of Java classes which serve as the interface to a sophisticated three-dimensional graphics and sound rendering system. Despite all of this functionality, the API is straightforward to use. This tutorial introduces the main concepts of the Java 3D API, including many code samples, examples, and diagrams.
Download Chapter 0 – Overview and Appendices (PDF 191KB)
j3dDownload Chapter 1 – Getting Started (PDF 199KB)
j3dDownload Chapter 2 – Creating Geometry (PDF 237KB)
j3dDownload Chapter 3 – Easier Content Creation (PDF 180KB)
j3dDownload Chapter 4 – Interaction (PDF 231KB)
j3dDownload Chapter 5 – Animation (PDF 264KB)
j3dDownload Chapter 6 – Lights (PDF 412KB)
Download Chapter 7 – Textures (PDF 568KB)
Download Source Code – Tutorial Examples (JAR 329KB) Available from: http://web.cs.ucla.edu/classes/cs269/Java3DTutorial/
Java 3D Official Website (The Source for Java Technology Collaboration)
(https://java3d.java.net/)
This is the parent project for all Java 3DTM -related sub-projects on java.net. These sub-projects include: j3d-core (the core 3D API), vecmath (the 3D vector math package), and j3d-core-utils (the 3D core utilities), among others. See the complete list of sub-projects at the left navigation of this page.
Java 3D TM Graphics
(http://www.java3d.org/)
This is java3d.org. A site for demonstrating and sharing information about Java 3D, the extension to Java for displaying three dimensional graphics.
You can start to learn Java 3D from the tutorial or you can look at our examples and explore our virtual worlds.
Java 3D Tutorial
This is a beginners guide to programming with Java 3D. You can download the whole document in Word format, or choose a link from the table of contents below.