The Java 3D API Specification

Other Format
from $0.00

Author: Henry Sowizral

ISBN-10: 0201710412

ISBN-13: 9780201710410

Category: 3D Computer Graphics

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

Search in google:

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 thatgeometry. 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. 0201710412B04062001

PREFACE: 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. Related Documentation This specification is intended to be used in conjunction with the browser-accessible, javadoc-generated API reference. Style Conventions 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. Bold type is used to represent variables. Italic type is used for emphasis and for equations. 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. Programming Conventions Java 3D uses the following programming conventions: The default coordinate system is right-handed, with +y being up, +x horizontal to the right, and +z directed toward the viewer. All angles or rotational representations are in radians. All distances are expressed in units or fractions of meters. Acknowledgments 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 0201710412P04062001

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