
| 3D User Interfaces with Java 3D Jon Barrilleaux 2000 | 520 pages ISBN: 1884777902 |
|||
| $49.95 | Softbound print book - (includes free ebook) | ||
| $39.99 | PDF ebook | ||
RESOURCES
DESCRIPTION
3D User Interfaces with Java 3D is a practical guide for providing next-generation applications with 3D user interfaces for manipulation of in-scene objects. Emphasis is on standalone and web-based business applications, such as for online sales and mass customization, but much of what this book offers has broad applicability to 3D user interfaces in other pursuits such as scientific visualization and gaming.This book provides an extensive conceptual framework for 3D user interface techniques, and an in-depth introduction to user interface support in the Java 3D API, including such topics as picking, collision, and drag-and-drop. Many of the techniques are demonstrated in a Java 3D software framework included with the book, which also provides developers with many general-purpose building blocks for constructing their own user interfaces.
Applications and their use of 3D are approached realistically. The book is geared towards sophisticated user interfaces for the "everyday user" who doesn't have a lot of time to learn another application--much less a complicated one--and an everyday computer system without exotic devices like head mounted displays and data gloves. Perhaps the best description of this book is: "A roadmap from Java 3D to 'Swing 3D'."
Translation rights for 3D User Interfaces with Java 3D have been granted for Korea. If you are interested in learning where to buy this book in a language other than English, please inquire at your local bookseller.
ABOUT THE AUTHOR...
Jon Barrilleaux is a consultant specializing in the application of 3D graphics, imaging, and virtual reality to solving real world problems. He has over 20 years experience in software development, R&D, and project management, including 14 years in 3D graphics, imaging, and information processing, and 6 years in virtual reality, augmented reality, and computer simulation.
He has been involved in numerous projects to develop 2D and 3D user interfaces for research, training, electronic library, product configuration, e-commerce, and end-user applications. Barrilleaux has B.S. and M.S. degrees in Electrical Engineering from Rice University, TX.
Software Changes
History for Version 2.0This version of the software takes advantage of Java 3D 1.2 to fix many of the problems with the original software. It also contains several new classes, which support navigation and common control needs. This is the preferred version, although some minor classes no longer match those described in the book.
All examples have been tested under Java 1.3 and Java 3D 1.2. Because of a bug in Java 3D 1.2, a couple of the examples will only work properly with Java 1.1. To facilitate use of the software under Java 3D 1.1 and 1.2, methods deprecated under 1.2 are still used.
The following is a detailed summary of the changes in this version.
- examples
- CameraNavigating - New. Demonstrates the fly and orbit cameras.
- TextureShading - New. Demonstrates shapes with simultaneous texturing, shading, and transparency.
- j3dui.navigate.*
- OrbitCamera - New. Orbit camera class.
- OrbitCameraControl - New. Default controller for the orbit camera.
- FlyCamera - New. Flying camera class.
- FlyCameraControl - New. Default controller for the fly camera.
- j3dui.control.*
- AbsoluteDragger - New. Convenience class that bundles input drag sensors and filters for absolute mouse and keyboard dragging.
- RelativeDragger - New. Convenience class that bundles input drag sensors and filters for relative mouse and keyboard dragging.
- DirectMapper - New. Convenience class that bundles an input drag mapper and plugin for direct input drag actuation.
- DrmTranslationMapper - New. Convenience class that bundles intuitive and source mappers for DRM translation actuation.
- DrmRotationMapper - New. Convenience class that bundles intuitive and source mappers for DRM rotation actuation.
- WrmTranslationMapper - New. Convenience class that bundles intuitive and source mappers for WRM translation actuation.
- j3dui.control.inputs.*
- InputDragFilterPlugin - Added method stopInputDrag().
- OffsetInputDragPlugin - Added method allowActiveOffset().
- AccelerateInputDragFilter - New. Interprets input drags as accelerations, with the new rate maintained between drags.
- j3dui.control.inputs.sensors.*
- Awt???Sensor - New. A complete set of AWT-based mouse and keyboard sensor classes to replace the Behavior-based ones. All include method getEventOut() for access to a built-in output event splitter.
- ???Sensor - All old sensors have been deprecated and replaced with the new versions throughout the software.
- j3dui.control.mappers.*
- InputDragMapper - Added method getEventOut() for access to a built-in output event splitter.
- j3dui.control.mappers.intuitive.*
- IntuitiveDragMapper - Added method getEventOut() for access to a built-in output event splitter.
- SourceDragMapper - Added method getEventOut() for access to a built-in output event splitter.
- j3dui.feedback.elements.*
- TextureShape - Added method setShading() for support of object shading (if shape geometry contains normals), which works in conjunction with texturing and transparency.
- j3dui.visualize.*
- As a result of a J3D 1.2 bug fix and a workaround for a remaining bug, visualization techniques that require the external view geometry (WorldOverlay, etc.) no longer jitter.
- As a result of a J3D 1.2 bug fix, SwitchNode works correctly in multiple views.
- ChangePoster - Deprecated. (See j3dui.visualize.change.*)
- j3dui.visualize.change.*
- ???ChangeSensor - New. These classes completely replace the ChangePoster kludge. The new change detection model is integrated into the Actuator class for easy and reliable use, and completely avoids the use of J3D behaviors.
- ViewChange??? - New. These classes support a ViewChangeTarget event.
- NodeExternalChange??? - New. These classes support a NodeExternalChangeTarget event.
Sample Chapters
Chapters 8, 13, and 19 of 3D User Interfaces with Java 3D are available here in Portable Document Format (PDF); you need Adobe's free Acrobat Reader software to view them. You may download Acrobat Reader here.
Download the Table of Contents
Reviews
"? an overview of some of
the techniques used in mapping the 3D virtual environment to the 2D screen....provides
a high level discussion of user interface design considerations and concepts.
It explores where using 3D in a GUI can enhance the usability of software and
what the options are for enabling the user to navigate the virtual 3D universe
using the common input devices...does well at providing a balanced discussion
of how Java 3D, in its current release, can be used to implement graphical user
interfaces. Overall, the book presents itself as somewhat academic in nature
but does well at providing a balanced discussion of how Java 3D, in its current
release, can be used to implement graphical user interfaces." (Rated 4 out of
5)
--Adrian Hibbert, British
Computer Society
"...provides an extensive
conceptual framework for 3D user interface techniques...A roadmap from Java
3D to 'Swing 3D'."
--JavaBoutique.com
--http://javaboutique.internet.com/resources/books/java3d/
Source Code
Source code, examples, and documentation from 3D User Interfaces with Java 3D is freely available and is contained in a single ZIP file.
Source Update
Please note, the research started by the book is continuing as part of an open source project at sourceforge.net/projects/gumbo. The CVS is current and active (the downloads are quite old and should be ignored).
Prerequisites
The software requires Java 1.2 or better, Java 3D 1.2 or better, and a Java 3D VRML loader.
If you are only running the examples you can use the Java runtime version (JRE). If you are also doing development then you will want the JDK. Java 1.3 download
To run the examples you will need the Java 3D runtime version. If you are also doing development then you will want the JDK. Java 3D download
Many examples require a Java 3D VRML97 loader, which must be installed separately. Any compatible VRML loader can be used. The following link is to a jar file containing an old version used in developing the code. Download it, and install it where you find your Java 3D jars. Vrml97 x3d.jar download
Usage
The software will unzip in the directory "J3duiBook". Place this directory in a convenient location.The examples, which are found in separate directories under ".../J3duiBook/examples", must be run from the command line (e.g. DOS prompt). The library ".../J3duiBook/lib" must be in your CLASSPATH.
As a convenience for Windows users, a .bat file has been included in each example directory. Double-clicking this file should execute the example without having to set the CLASSPATH or use the command line.
Each example will pop up a summary of its operating instructions. Detailed instructions and descriptions of what you should be seeing and doing, and why that is significant, can be found in the book.
The javadoc for the 3D UI framework included with the book can be found in ".../J3duiBook/docs/lib/index.html". The javadoc for the book examples is located at ".../J3duiBook/docs/examples/index.html".
Download
The following versions of the software are available. Each includes source code, examples, and documentation as a single ZIP file.- Version 1.0 (1.4 MB) - This is the original software released with the book. It was developed and tested specifically for Java 3D 1.1 and, as such, contains several J3D 1.1 related problems, which are described in the book.
- Version 2.0 (1.6 MB) - This version of the software takes advantage of Java 3D 1.2 to fix many of the problems with the original software. It also contains several new classes, which support navigation and common control needs. This is the preferred version, although some minor classes no longer match those described in the book. (Change history)
You are free to use the software for personal, non-commercial use. The software is protected by copyright and all rights are reserved by the author. It comes without warranty of any kind, no liability is assumed for its use, and it is not fit to do anything in particular.
