the process of multiplatform development: an example robyn taylor university of alberta
Post on 19-Dec-2015
220 views
TRANSCRIPT
The Process of Multiplatform The Process of Multiplatform Development: An ExampleDevelopment: An Example
Robyn TaylorRobyn Taylor
University of AlbertaUniversity of Alberta
ContentsContents
The Role of a DesignerThe Role of a Designer
Matching Application GoalsMatching Application Goals
Matching Application RequirementsMatching Application Requirements
Description of Target PlatformsDescription of Target Platforms
Example: Specifying the Rotation Example: Specifying the Rotation Functionality Across 2 Platforms (PC and Functionality Across 2 Platforms (PC and VizRoom)VizRoom)
ConclusionsConclusions
The Role of a DesignerThe Role of a Designer
Application Goal
Describe applicationrequirements in InTml
documents
Check correctness ofInTml documents
Develop media
Yes
No
No Yes
Designer
Are the user requirements met?
Can the InTmlimplementation support
the application?
Developer
Matching Application GoalsMatching Application Goals
The user must manipulate three solid 3D objects The user must manipulate three solid 3D objects so that they match in position and orientation so that they match in position and orientation with three corresponding translucent 3D objects. with three corresponding translucent 3D objects.
When the user matches a solid object with its When the user matches a solid object with its translucent counterpart both the object and its translucent counterpart both the object and its copy disappear. copy disappear.
The application logs the user’s performance to a The application logs the user’s performance to a database and terminates when all three pairs of database and terminates when all three pairs of objects are matched.objects are matched.
Matching Application RequirementsMatching Application Requirements
Application Initialization Tasks
• Load three solid 3D objects
• Generate a translucent copy of each object
• Position solid objects at random
• Position translucent copies at random
User Behaviour at Run Time
• Select an object
• Rotate selected object
• Translate selected object
Application Behaviour at Run Time
• Highlight selected object so as to give feedback to the user
• Compare each object with its translucent copy, and delete both the object and the copy if their positions and orientations match
• Log the user’s behaviour to a database for future analysis
Matching App in Multiple EnvironmentsMatching App in Multiple Environments
Standard PC with Mouse and Keyboard• 2-button mouse used for selection, rotation, translation• determination of which behaviour is enabled depends on which mouse and/or keyboard buttons are pressed• fixed viewpoint
SmartBoard• Selection, rotation and translation achieved by drawing with different pens• fixed viewpoint
Matching App in Multiple EnvironmentsMatching App in Multiple Environments
PC with Head Mounted Display and Joystick• 4 button joystick used for selection, rotation, translation• determination of which behaviour is enabled depends on which joystick buttons are pressed• 3 degrees of freedom head mounted display used to control the orientation of the viewpoint
VizRoom• head tracker/hand tracker used for go-go selection• hand tracker used for rotation, translation • position of the user wearing the head tracker used to control viewpoint position, orientation• immersive display (3 Screens)
Example: How would we describe a Example: How would we describe a small task in InTml?small task in InTml?
To change the orientation of an object, it To change the orientation of an object, it must be selected then rotated.must be selected then rotated.
Let us examine the filters and ports needed Let us examine the filters and ports needed to implement selection & rotation in InTml.to implement selection & rotation in InTml.
What do we want to do?What do we want to do?We would like to use our input device(s) to select an object, We would like to use our input device(s) to select an object,
receive feedback to show us which object is selected, and receive feedback to show us which object is selected, and rotate the object.rotate the object.
This means we need to represent the connections between:This means we need to represent the connections between:
Input Device(s)Input Device(s)A selection techniqueA selection techniqueA means of displaying feedback to the userA means of displaying feedback to the userA means of rotating the objectA means of rotating the object
Selection & Rotation -- PC with MouseSelection & Rotation -- PC with Mouse
Mouse
Select ByRay
Rotation
HighlightedFeedback
Left button press
2D Position
Scene(Selectable Objects)
Object
Left button release
Selection & Rotation -- VizRoomSelection & Rotation -- VizRoom
Wand
Head Go-GoSelection
HighlightedFeedback
Rotation&
Translation
3D Position
Orientation
3D Position
Orientation
Object
HandRepresentation
Scene(Selectable Objects)
Go-Go 3D Position
Go-Go Orientation
How do the 2 Implementations Compare?How do the 2 Implementations Compare?
Input Device(s)Input Device(s)– PC: mousePC: mouse– VizRoom: head tracker and wandVizRoom: head tracker and wand
A selection techniqueA selection technique– PC: ray selectionPC: ray selection– VizRoom: Go-Go selectionVizRoom: Go-Go selection
A means of displaying feedback to the userA means of displaying feedback to the user– PC & VizRoom: highlightPC & VizRoom: highlight
A means of rotating the objectA means of rotating the object– PC: 2D to 3D conversionPC: 2D to 3D conversion– VizRoom: rotation based on 3D orientationVizRoom: rotation based on 3D orientation
ConclusionsConclusions
InTml allows the designer to describe a InTml allows the designer to describe a program’s functionality in terms of the program’s program’s functionality in terms of the program’s tasks and how these tasks relate to one another.tasks and how these tasks relate to one another.Different platforms likely require different Different platforms likely require different interaction techniques, but largely similar interaction techniques, but largely similar functionality.functionality.The use of filters and connections allows The use of filters and connections allows designers to plug in newly developed platform-designers to plug in newly developed platform-specific interaction techniques without interfering specific interaction techniques without interfering with the underlying functionality of the with the underlying functionality of the application.application.