Figures
Preface
1 Introduction to Java 3D
1.1 Goals
1.2 Programming Paradigm
1.3 High Performance
1.4 Support for Building Applications and Applets
1.5 Overview of Java 3D Object Hierarchy
1.6 Structuring the Java 3D Program
2 Java 3D Concepts 2.1 Basic Scene Graph Concepts
2.2 Features of Java 3D
3 Scene Graph Basics 3.1 Scene Graph Structure
3.2 Scene Graph Objects
3.3 Scene Graph Superstructure Objects
3.4 Scene Graph Viewing Objects
4 Scene Graph Superstructure 4.1 The Virtual Universe
4.2 Establishing a Scene
4.3 Loading a Virtual Universe
4.4 Coordinate Systems
4.5 High-Resolution Coordinates
4.6 API for Superstructure Objects
5 Group Node Objects 5.1 Group Node
5.2 BranchGroup Node
5.3 TransformGroup Node
5.4 OrderedGroup Node
5.5 DecalGroup Node
5.6 Switch Node
5.7 SharedGroup Node
6 Leaf Node Objects 6.1 Leaf Node
6.2 Shape3D Node
6.3 BoundingLeaf Node
6.4 Background Node
6.5 Clip Node
6.6 ModelClip Node
6.7 Fog Node
6.8 Light Node
6.9 Sound Node
6.10 Soundscape Node
6.11 ViewPlatform Node
6.12 Behavior Node
6.13 Morph Node
6.14 Link Node
6.15 AlternateAppearance Node
7 Reusing Scene Graphs 7.1 Sharing Subgraphs
7.2 Cloning Subgraphs
8 Node Component Objects 8.1 Node Component Objects: Attributes
8.2 Node Component Objects: Geometry
8.3 Math Component Objects
9 View Model 9.1 Why a New Model?
9.2 Separation of Physical and Virtual
9.3 The Objects That Define the View
9.4 ViewPlatform: A Place in the Virtual World
9.5 Generating a View
9.6 A Minimal Environment
9.7 The View Object
9.8 The Screen3D Object
9.9 The Canvas3D Object
9.10 The PhysicalBody Object
9.11 The PhysicalEnvironment Object
10 Behaviors and Interpolators 10.1 Behavior Object
10.2 Composing Behaviors
10.3 Scheduling
10.4 How Java 3D Performs Execution Culling
10.5 The Behavior API
10.6 Interpolator Behaviors
10.7 Level-of-Detail Behaviors
10.8 Billboard Behavior
11 Input Devices and Picking 11.1 InputDevice Interface
11.2 Sensors
11.3 Picking
12 Audio Devices 12.1 AudioDevice Interface
12.2 AudioDevice3D Interface
12.3 Instantiating and Registering a New Device
13 Execution and Rendering Model 13.1 Three Major Rendering Modes
13.2 Instantiating the Render Loop
14 Immediate-Mode Rendering 14.1 Two Styles of Immediate-Mode Rendering
14.2 Canvas3D Methods
14.3 API for Immediate Mode
A Math Objects A.1 Tuple Objects
A.2 Matrix Objects
B 3D Geometry Compression B.1 Compression
B.2 Decompression
B.3 Appendix Organization
B.4 Generalized Triangle Strip
B.5 Generalized Triangle Mesh
B.6 Position Representation and Quantization
B.7 Color Representation and Quantization
B.8 Normal Representation and Quantization
B.9 Modified Huffman Encoding
B.10 Compressed Geometry Instructions
B.11 Bit Layout of Compressed Geometry Instructions
B.12 Compressed Geometry Instruction Bit Details
B.13 Semantics of Compressed Geometry Instructions
B.14 Semantics of Vertices
B.15 Outline of Geometry Process
B.16 Compressed Geometry Assembly Syntax
B.17 Compressed Geometry Instruction Verifier
C View Model Details C.1 An Overview of the Java 3D View Model
C.2 Physical Environments and Their Effects
C.3 The Coordinate Systems
C.4 The ViewPlatform Object
C.5 The View Object
C.6 The Screen3D Object
C.7 The Canvas3D Object
C.8 The PhysicalBody Object
C.9 The PhysicalEnvironment Object
C.10 Viewing in Head-Tracked Environments
C.11 Compatibility Mode
D Exceptions D.1 BadTransformException
D.2 CapabilityNotSetException
D.3 DanglingReferenceException
D.4 IllegalRenderingStateException
D.5 IllegalSharingException
D.6 MismatchedSizeException
D.7 MultipleParentException
D.8 RestrictedAccessException
D.9 SceneGraphCycleException
D.10 SingularMatrixException
D.11 SoundException
E Equations E.1 Fog Equations
E.2 Lighting Equations
E.3 Sound Equations
E.4 Texture Mapping Equations
F The Utility Packages F.1 The Utility Packages
F.2 Package Overview
F.3 audioengines Package
F.4 audioengines.javasound Package
F.5 loaders Package
F.6 loaders.lw3d Package
F.7 loaders.objectfile Package
F.8 utils.applet Package
F.9 utils.behaviors.interpolators Package
F.10 utils.behaviors.keyboard Package
F.11 utils.behaviors.mouse Package
F.12 utils.compression Package
F.13 utils.geometry Package
F.14 utils.image Package
F.15 utils.picking Package
F.16 utils.picking.behaviors Package
F.17 utils.universe Package
G CD-ROM Installation G.1 What's on the CD-ROM
G.2 Installing the Software on Windows 98/NT Systems
G.3 Installing the Software on Solaris Systems
G.4 Accessing the Documentation from the CD-ROM
H The Example Programs H.1 Introduction
H.2 Running the Example Programs
H.3 Program Descriptions
Glossary Index