HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
In The Java 3D API Specification, Second Edition, the most current release of the Java 3D API, version 1.2, is fully specified, explained and discussed. This newest version of the API features a redesigned internal architecture that provides a foundation for higher quality applications with improved ability to scale. This is the most authoritative, complete, and detailed book on the Java 3D API.
This book represents the definitive Java 3D API specification, providing authoritative and detailed descriptions of each element of the API. It offers an informative overview of the Java 3D API, comprehensive instructions for "scene graph" definition and construction, and a detailed description of the Java 3D View Model, an innovative model enabling applications to be displayed on a wide array of devices.
The book also features a variety of input devices, picking mechanisms, audio capabilities, and behaviors and interpolators for animating objects. The Java 3D Execution and Rendering Model is described in depth. Other topics covered include math objects, 3D geometry compression, and exceptions. The accompanying CD-ROM, new to this edition, contains numerous live examples.
Comprehensive and definitive, this book is an essential reference for any programmer interested in entering the exciting world of three-dimensional Internet applications.
The Java 3D API, part of the Java Media suite of APIs, enables the creation of three-dimensional graphics applications and Internet-based 3D applets. It gives developers high-level constructs for creating and manipulating 3D geometry and for building the structures used in rendering that geometry. Using the Java 3D API, developers can efficiently define and render very large virtual worlds. Moreover, in line with the Java platform's "write once, run anywhere" vision, applications written using the Java 3D API can run on a wide range of platforms and systems and are adapted for use on the Internet.
For all programmers and developers in the field of three-dimensional Internet applications, The Java 3D API Specification, Second Edition is an essential resource.
Figures.
Preface.
1. Introduction to Java 3D.
Goals.
Programming Paradigm.
High Performance.
Support for Building Applications and Applets.
Overview of Java 3D Object Hierarchy.
Structuring the Java 3D Program.
Basic Scene Graph Concepts.
Features of Java 3D.
Scene Graph Structure.
Scene Graph Objects.
Scene Graph Superstructure Objects.
Scene Graph Viewing Objects.
The Virtual Universe.
Establishing a Scene.
Loading a Virtual Universe.
Coordinate Systems.
High-Resolution Coordinates.
API for Superstructure Objects.
Group Node.
BranchGroup Node.
TransformGroup Node.
OrderedGroup Node.
DecalGroup Node.
Switch Node.
SharedGroup Node.
Leaf Node.
Shape3D Node.
BoundingLeaf Node.
Background Node.
Clip Node.
ModelClip Node.
Fog Node.
Light Node.
Sound Node.
Soundscape Node.
ViewPlatform Node.
Behavior Node.
Morph Node.
Link Node.
AlternateAppearance Node.
Sharing Subgraphs.
Cloning Subgraphs.
Node Component Objects: Attributes.
Node Component Objects: Geometry.
Math Component Objects.
Why a New Model?.
Separation of Physical and Virtual.
The Objects That Define the View.
ViewPlatform: A Place in the Virtual World.
Generating a View.
A Minimal Environment.
The View Object.
The Screen3D Object.
The Canvas3D Object.
The PhysicalBody Object.
The PhysicalEnvironment Object.
Behavior Object.
Composing Behaviors.
Scheduling.
How Java 3D Performs Execution Culling.
The Behavior API.
Interpolator Behaviors.
Level-of-Detail Behaviors.
Billboard Behavior.
InputDevice Interface.
Sensors.
Picking.
AudioDevice Interface.
AudioDevice3D Interface.
Instantiating and Registering a New Device.
Three Major Rendering Modes.
Instantiating the Render Loop.
Two Styles of Immediate-Mode Rendering.
Canvas3D Methods.
API for Immediate Mode.
Tuple Objects.
Matrix Objects.
Compression.
Decompression.
Appendix Organization.
Generalized Triangle Strip.
Generalized Triangle Mesh.
Position Representation and Quantization.
Color Representation and Quantization.
Normal Representation and Quantization.
Modified Huffman Encoding.
Compressed Geometry Instructions.
Bit Layout of Compressed Geometry Instructions.
Compressed Geometry Instruction Bit Details.
Semantics of Compressed Geometry Instructions.
Semantics of Vertices.
Outline of Geometry Process.
Compressed Geometry Assembly Syntax.
Compressed Geometry Instruction Verifier.
An Overview of the Java 3D View Model.
Physical Environments and Their Effects.
The Coordinate Systems.
The ViewPlatform Object.
The View Object.
The Screen3D Object.
The Canvas3D Object.
The PhysicalBody Object.
The PhysicalEnvironment Object.
Viewing in Head-Tracked Environments.
Compatibility Mode.
BadTransformException.
CapabilityNotSetException.
DanglingReferenceException.
IllegalRenderingStateException.
IllegalSharingException.
MismatchedSizeException.
MultipleParentException.
RestrictedAccessException.
SceneGraphCycleException.
SingularMatrixException.
SoundException.
Fog Equations.
Lighting Equations.
Sound Equations.
Texture Mapping Equations.
The Utility Packages.
Package Overview.
audioengines Package.
audioengines.javasound Package.
loaders Package.
loaders.lw3d Package.
loaders.objectfile Package.
utils.applet Package.
utils.behaviors.interpolators Package.
utils.behaviors.keyboard Package.
utils.behaviors.mouse Package.
utils.compression Package.
utils.geometry Package.
utils.image Package.
utils.picking Package.
utils.picking.behaviors Package.
utils.universe Package.
What's on the CD-ROM.
Installing the Software on Windows 8/NT Systems.
Installing the Software on Solaris Systems.
Accessing the Documentation from the CD-ROM.
Introduction.
Running the Example Programs.
Program Descriptions.
This document describes the Java 3D API, version 1.2, and presents some details on the implementation of the API. This specification is not intended as a programmer's guide.
This specification is written for 3D graphics application programmers. We assume that the reader has at least a rudimentary understanding of computer graphics. This includes familiarity with the essentials of computer graphics algorithms as well as familiarity with basic graphics hardware and associated terminology.
This specification is intended to be used in conjunction with the browser-accessible, javadoc-generated API reference.
The following style conventions are used in this specification:
Lucida
type is used to represent computer code and the names of files and directories. Bold Lucida
type is used for Java 3D API declarations. Changes to the Java 3D API, version 1.2, are indicated by an icon in the margin. The icon ("New in 1.2" enclosed in arrows) appears in the outside margin for all new methods and constructors.
Java 3D uses the following programming conventions:
We gratefully acknowledge Warren Dale for writing the Sound API portion of this specification and Daniel Petersen for writing the scene graph sharing portion of the specification. We especially acknowledge Bruce Bartlett for his invaluable assistance with the editing, formatting, and indexing of the specification. Without Bruce's considerable help, this book would not have been possible.
We also thank the many individuals and companies that provided comments and suggestions. They have improved the Java 3D API.
Henry Sowizral
Kevin Rushforth
Michael Deering
Sun Microsystems, Inc.
April 2000