3D User Interfaces with Java 3D
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'."
Chapter 8 - Manipulation
Chapter 8
Chapter 13 - Actions and interactions
Chapter 19 - Control intuition
In real life, people rely on sight and touch to help them manipulate objects. Before we
move an object, sight allows us to size up the situation and to plan a strategy for per-forming
the action. In addition, touch can help guide our hands and fingers to grasp
tools, to move controls, and to feel when objects are flush or locked into place. During
the operation, sight provides us with a continuously updated overview of how the
matter is progressing. By contrast, touch offers a more visceral and sometimes more
detailed sense for what is happening than sight, such as whether the target object is
moving smoothly, has bumped into something, is locked firmly into place, or is flush
with another object. A big advantage of touch over sight is that you can get a good
sense for what is happening, regardless of your vantage point or how cluttered the
environment is; you do not have to see something in order to feel what is going on.
All of this points to the fact that manipulation is a lot more intuitive in the real world
than it ever will be on a POCS, which has no mechanism for providing the user with
tactile feedback. The outlook for effective 3D manipulation on a POCS seems pretty
bleak. Or is it?
With only a computer screen and a mouse, what can we as 3D user interface
designers do? We cheat! We introduce artificial devices and decorations, judiciously
bend the rules of physics, offer the user X-ray vision, and create a make-believe form
of tactile feedback. Some of these cheats were already introduced in previous chapters.
In chapter 4, Control, you saw how DRM and WRM could make manipulation a lot
more intuitive for the 3D user. (Meager, but it's a start.) Next, in chapter 5, you
learned how feedback could help guide the user to the controls and indicate when his
hand— the mouse— is in the right position to use them. (Things are starting to look
up.) Chapter 6 discussed how to let the user see through clutter with overlay and X-ray
vision, and chapter 7 described ways to let the user easily move around for a better view
of the work. (Maybe there is hope for 3D manipulation.)
Manipulation is how users interact with the data in the application scene. It provides
them with the means to move and arrange objects, connect and group them
together, and to internally configure them. Manipulation requires the close cooperation
of control, feedback, and visualization. This chapter builds upon these basic concepts
to provide manipulation techniques that are effective and compelling in a 3D setting.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|