VR 101
REQUIREMENTS ANAYLISIS
DOCUMENT
May 3, 2006
2
Table of Contents
1. Introduction...3
1.1. Purpose of system...3
1.2. Scope of System...3
1.3. Objectives and Success Criteria...3
2. Current System...4
3. Proposed System...4-6 3.1. Overview...4
3.2. Functional Requirements 3.2.1. Languages...4
3.2.2. Tutorial Program...5
3.2.3. Multi-Platform...5
3.3. Non Functional Requirements 3.3.1. Research...6
3.3.2. Hardware Consideration...6
3.3.3. Error Handling...6
3.3.4. System Modifications...6
3.3.5. Programming Languages...6
3.3.6. Demonstration Programs...6
4. Uses Cases...7
1. Introduction
1.1. Purpose of system
The designed system will consist of a tutorial program and demonstration programs that will provide a better understanding of the Virtual Reality lab to new users. The set of demonstration programs will be constructed using three different graphics APIs: VRML, OpenGL, and OpenGL Performer. The tutorial steps should be general enough to be the same for each graphics API. The demonstration programs should be able to run on either a Windows® machine or the SGI® machine without having to make large changes to the code.
1.2. Scope of System
• The tutorial and demonstration programs only have to work on Windows®
and UNIX based machines.
• The demonstration programs and tutorial steps will only be done for OpenGL, OpenGL Performer, and VRML.
• There will be no code changes to the Cave Library.
1.3. Objectives and Success Criteria
Objectives
• To encourage students to use the Virtual Reality lab.
• To create educational and fun tutorials to teach students how to use the Virtual Reality lab.
Success Criteria
•
Complete tutorials that assume no prior of knowledge the Virtual Reality lab.•
Having an implementation of the tutorial for each of the three graphics API’s•
Break down the cave library to a manageable size since there is so much to it.4
2. Current System
The current system requires the user to work in the Virtual Reality Lab exclusively. The user cannot use CAVE library functions outside of the Virtual Reality Lab without changing their code a great amount (or if there is, users are not taught how). There is no system in place to familiarize users with the CAVE library, VRML, OpenGL, or OpenGL Performer.
3. Proposed System
3.1. Overview
The new system will help familiarize users who have no knowledge of the VR lab with basic use of the SGI® machine, the cave library, VRML,
OpenGL, and OpenGL Performer. To accomplish this, we will create demonstration programs for each of the graphics API’s and have a tutorial program that will include step-by-step instructions associated with each demonstration program.
3.2. Functional Requirements
3.2.1. Languages
The demonstration programs must use three graphic APIs: VRML, OpenGL and OpenGL Performer.
VRML is a standard file format for representing 3-dimensional (3D) interactive vector graphics, designed particularly with the World Wide Web in mind.
OpenGL (Open Graphics Library) is a cross-language cross- platform graphics API for writing applications that produce 3D computer graphics (and 2D computer graphics as well). The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives.
OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a library of utility code built on top of OpenGL for the purpose of simplifying difficult real-time simulations. OpenGL Performer was developed by SGI, who continues to maintain and enhance it. OpenGL Performer is available for IRIX, Linux, and several versions of Microsoft Windows. Both ANSI C and C++ bindings are available.
3.2.2. Tutorial Program
The tutorials will be interacted with through a software application.
The tutorial program will allow the user to choose which graphics API they wish to learn. The program will have step by step instructions, with each instruction adding more to complete the program. The tutorial program will allow the user to enter the code to perform the task asked in the instructions. The tutorial program will also allow the user to view the combined code (user’s code + demonstration program’s code) at any point when they are developing their code.
The tutorial will not keep code the user has written from step to step. This ensures that the user will always be able to compile the code for a step without having to go to a previous step to correct a problem caused by possibly faulty code. We cannot know that there is only one way to do something, so we are ensuring that the demonstration program follows a certain way of doing something so that it runs at each step.
The tutorial program must be able to compile and run the combined code so that the user can determine whether they have written their code correctly.
3.2.3. Multi-Platform
The SGI machine which runs the VR hardware is a UNIX based machine and the user must be able to develop the program on a
Windows machine. Thus the tutorial program must be multi-platform to be able to run on both platforms.
6
3.3. Non Functional Requirements
3.3.1. Research
Research is a major part of this project. Since all of the team members are inexperienced with the graphics APIs, each language must be researched. The team also has no experience with the CAVE library.
We will conduct our research by looking at demonstrations our client has given the team, and by searching the internet.
3.3.2. Hardware Consideration
The hardware that will be needed will be a 386 architecture (UNIX) and a PC architecture (Windows). This is because users can develop on PC architecture and a 386 architecture.
3.3.3. Error Handling
If the code that the user writes causes a compiler error, there will be a display telling the user that there were errors. The user will then have to try entering compliable code again. If the user enters incorrect code multiple times, the user will have the option of viewing a correct solution.
3.3.4. System Modifications
The system will allow others to create a tutorial and then use the tutorial program for it. This means that the program must not have any of the 3 tutorials hard coded.
3.3.5. Programming Languages
The language chosen to develop the interface is GTK+. The two reasons for picking this language is that it has been developed to run on multi-platforms and that the language is C based making the learning curve less for the development of the interface. GLADE was chosen as the IDE to setup the graphical parts of the interface. GLADE will then generate C code for the interface. The code then can be modified to include the modules we have developed.
3.3.6. Demonstration Programs
The developers will create the same programs that the user will create for the tutorial. As the user will only be developing sections of the program at a single time, this code will be used to supplement the user’s code at the various stages of the tutorial.
4. Uses Cases
Use Case 1: Familiarization with VR programming languages and VR lab utilities.
Participating actor: VR programmer Entry condition:
Programmer wishes to develop a VR program for use in the VR lab.
Programmer has limited knowledge of VRML, Open GL, or Open GL Performer.
Event flow:
1. Programmer wants to learn how make programs for the VR lab.
2. Programmer accesses tutorials for VRML, Open GL, or Open GL Performer, which include cave library commands.
3. Programmer can develop an original program.
Exit condition:
Programmer understands how to create a VR program for the VR lab
Use Case2: Cave reference
Participating actor: VR programmer Entry condition:
Programmer doesn’t know how to utilize cave library functions Event flow:
1. Programmer wants to utilize an unknown cave library function.
2. Programmer refers to the tutorial for the cave library function.
3. Programmer understands how to use the desired cave library function Exit condition:
The programmer understands how to use the desired cave library function.