advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Reviews : Java Books : 3D User Interfaces with Java 3D :


Title: 3D User Interfaces with Java 3D
ISBN: 1884777902
US Price: $49.95
© Manning Publications Co.

8.1 CONTROL PERSONAE

A convenient way to classify user manipulation is according to which entity in the control chain the user seems to be manipulating directly. The relation of that entity to the user, which names the persona of the manipulation control, can be described in terms of participants in everyday speech: first person, second person, and third person.

The elements in the control chain that are pertinent to defining control personae are the user, the control, and the target of the control action, which are shown in figure 8. 1. The user's role is to work the controls and to see the results of that action in the display. The view, as a cameralike object, serves as a proxy for the user in the virtual world. In this context, moving the view is comparable to moving the user in the world. The next entity in the control chain is the control itself. When the user operates the control, the target object reacts in a manner prescribed by the control's input interpretation. The final entity in the control chain is the target object. In response to control inputs, the target object may slide or rotate, grow or shrink, change color, or react in any number of other ways.


Figure 8. 1 Control chain elements involved in defining control personae

As you may recall from the previous chapter, view navigation is also described in terms of personae (section 7.1.1). Although often related in terms of implementation, conceptually the two forms are distinct, with navigation personae describing the user's relationship with the moving view, and control personae describing different ways the user can control the movement of the view. Table 8. 1 summarizes the control personae covered in this section.

Table 8. 1 Control personae used for manipulation
First person
  • The user controls himself, the first person. Example: Drag right in the display to turn the view— the user— to the right.

  • Pros: Manipulation occurs in the same frame of reference that the user sees in the view. Intuitive form of navigation that is similar to walking through the world.

  • Cons: Can be unintuitive in situations where the view is not represented as a vehicle. The target— the view— cannot be seen in the context of its surroundings.
Second person
  • The user controls the target object, the second person. Example: Drag on an object to slide it across the floor.

  • Pros: Direct WYSIWYG manipulation of objects. Intuitive form of manipulation that is similar to reaching out and moving an object in the world. Can see the target in context of its surroundings.

  • Cons: Difficult to directly manipulate objects in 3D using a 2D mouse and display.
Third person
  • The user controls a widget, the third person, which remotely controls the target object. Example: Virtual knob in a control panel that rotates a target object.

  • Pros: Controls are obvious— sliders, knobs, and buttons— and are always available. Familiar form of control— HUD or dashboard control panel.

  • Cons: Difficult to convey to the user what target object a control manipulates and how.

8.1.1 First person

In a first-person control, the user is essentially controlling himself/ herself, the first person. The user performs all three of the player roles in the control chain: The control is the display itself; and the target object of the control action is the user's view in the virtual world. As the user drags on the display with the mouse, the user's view moves around in the virtual world, which is shown in figure 8. 2. First-person control of an orbit camera is used in most of the examples in part 4.

The main advantage of first-person control is that user interactions occur in a frame of reference that does not require translation to that of another object. The user does not have to think, "I'm sliding this knob to the right, which makes the desk move north in the room." Instead, what you see in the display tells you where you are in the world and where you will go. In other words, you see that you are some distance away from the north wall of a room. You know that if you move yourself forward, you will be moving in a northerly direction closer to the wall.


Figure 8.2 Manipulation through first-person control

For some tasks, such as navigation, first-person control seems intuitive and works well. First-person navigation is popular because it approximates what happens when we walk through our everyday real world. We will ourselves to move forward and we do so. For this reason, VRML browsers use first-person control extensively for navigation, with the user dragging on the display (as opposed to some object or control widget) to move forward, steer left and right, and to tilt up and down. For other tasks, like manipulation, where the user's view is attached to the target object, first-person control can sometimes seem odd. For example, trying to convince the user that he/ she is a bookshelf that needs to scoot forward and stand against the wall is a bit of a reach. In other situations, however, it can seem quite natural, such as when the user feels he is in a moving vehicle, and dragging on the screen makes the vehicle turn in the direction of the drag.

8.1.2 Second person

In a second-person control, the user has the feeling of directly manipulating an object in the scene, the second person. The control and target objects move as one, in unison. Typically, the control appears as drag handles attached to the target object, which is shown in figure 8.3. This form of control is often referred to as direct or WYSIWYG manipulation. It is probably the most intuitive form of interaction between a user and an object because it approximates what we all do in our everyday lives: reach out and move objects.

An interesting form of second-person control is when the target of the control action is the view itself. The target object, the view, is represented by a widget in the scene, called the look-at puck. The user manipulates the puck in the scene the same as he would a data object, but in this case the view tags along for the ride. This is the puck camera navigation technique described in the previous chapter 7.


Figure 8. 3 Manipulation through second-person control

The advantages of second-person control are that the interaction is quite familiar to users— reach out and move an object— and that the target can be seen in the context of its surroundings, something that is missing in first-person control. A big disadvantage is that it is difficult to position and orient an object in three dimensions on a 2D display. One issue is the difficulty in using a 2D device like a mouse to control an object in three dimensions. The use of DRM and WRM coordinate mapping can help, which can constrain motion to a 2D frame of reference such as, in the case of WRM, a floor plane. Another issue with 3D manipulation is the ambiguity of viewing an object in three dimensions on a two-dimensional display. For example, looking at a box in a room from a bird's-eye view you might wonder whether the box is small, above the floor, and near you; or whether it is large, on the floor, and far from you. This is illustrated in figure 8. 5. Such visual ambiguity is unavoidable, especially if the user is not familiar with the inherent size of the objects in the world, or if similar looking objects come in various sizes, such as desks and bookshelves. Section 8. 2 will describe how adding relational feedback to objects can help mitigate this problem. Second-person object manipulation with feedback is demonstrated in the SecondPerson example in section 22.2.2.

8.1.3 Third person

In a third-person control, the user manipulates a control widget, the third person in the user's relationship, which in turn remotely controls the target object. Typically, the control itself is a virtual control device that approximates a physical control such as a slider, knob, or button. The virtual control can be in a separate GUI panel or overlaid onto the user's view of the world e. g., a heads-up display (HUD) or a vehicle dashboard. The target of the control action can be a data object or the view object, as shown in figure 8. 6.

When compared to second-person direct manipulation, this type of control may not seem very intuitive because the link between the control and its target is not direct: the user is required to make a mental transposition of actions. But practical experience does not support this conclusion. We are all accustomed to using third-person controls whether they are the set of buttons in an elevator or scrollbars in a GUI application. The user understands that manipulating a control in one place— pressing a floor button in the elevator— leads to some desired action somewhere else, the elevator moving up and down in the building.


Figure 8. 4 Illustration of the size-position ambiguity in 3D

The advantages of third-person control are that the controls are obvious because they are real world (sliders, knobs, and buttons) and so too are the actions required to manipulate them— slide a slider, turn a knob, press a button. Unlike in-scene controls, the position, size, and visibility of out-of-scene controls are certain: The user doesn't have to guess where the controls are, select an object to make them appear, or fiddle with the view so that the controls can be seen. Third-person controls also avoid the ambiguity that can occur with first-and second-person controls fighting for precedence in the display: Is a drag on the display meant to position an object, rotate it, or navigate the view? A big disadvantage of third-person controls is that the user is truly once removed from the target of his actions, having to use a proxy instead of manipulating the target directly. This makes it difficult to intuitively convey to the user what the target of the control action is and what the result of the control action will be. Third-person object manipulation with feedback and display overlaid controls is demonstrated in the ThirdPerson example in section 22. 2. 3.

Figure 8. 5 Two views of the same scene demonstrating the visual ambiguity that the user must contend with in a POCS


Figure 8. 6 Manipulation through third-person control

How to Add Java Applets to Your Site

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.

 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 34
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

IBM Brings Developers Into the Cloud
Apache at 10: You Can't Buy Us
Microsoft's CodePlex Foundation Moving Forward
Apple Claims 100,000 Apps, Google Analyzes Them
Nokia Latest to Play Opera Mobile 10 Browser
PayPal Opens Up Payment Platform to Devs
Ubuntu Linux 9.10 'Karmic Koala' Starts Its Climb
IBM Links Rational Developer Tools, Tivoli Apps
Libraries Give Vista Apps a Windows 7 Look
Ubuntu: The 'Default Alternative' to Windows?

Delivering Web-based Embedded Fonts in CSS 3
Adobe Helps PHP Developers Create Rich Internet Applications
Java Developers Finding a Home at Adobe Flex
Virtualization Delivers a Dynamic Infrastructure
Consuming XML Web Services in iPhone Applications
Build a More Agile Business with IBM
POJO-Based Solutions for LDAP Access: One Good, One Better
IBM Offers Enhanced Measurement and Management for Energy Usage
IBM Helps Transformation to an Information-Based Enterprise
Top Five Touch UI-Related Design Guidelines

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs