## Building Virtual Worlds

#### Lecture 1B: Virtual Reality and its History

This lecture is based on Chapters 1 and 2 of VINCE: Virtual Reality Systems, together with supplementary material which I will provide. These notes concentrate on the supplementary material, but the Queries contain questions from BOTH places.

Basic Computer Graphics Concepts

Geometric data. A point is a 2 dimensional or 3 dimensional set of real numbers, such as (x,y) or (x,y,z). When a point is used as part of a figure such as a polygon or polyhedron, it is called a vertex.

You can consider a simple data structure for representing a two dimensional graphical object as consisting of a list of vertices and operations (draw, move, changecolor, etc.) Using a standard 2d Cartesian coordinate system for instance, a simple square could be drawn by these commands

moveto    2,2
drawto    4,2
drawto    4,4
drawto    2,4
drawto    2,2

In the three dimensional domain, we simply add a third set of coordinates. For instance, we could have drawn that square in 3d space in the plane where z=10 by simply adding ",10" after each pair of numbers above.

Much of Chapter 3 will be concerned with some basic operations that can be used to move graphical data from place to place in 3space, or to transform 3d data to 2d data - a process called projection. Projections take images from 3d world coordinates into 2d screen coordinates. There are other coordinate systems that are used along the way, as we will discover.

Higher Order Representations. In programming languages we seldom deal with bits, bytes and machine registers. Likewise, in graphics we prefer not to actually work with vertices and line drawing commands. We prefer to construct aggregated entities like cubes, spheres, and more complex structures formed by combining these objects. We refer to a cube, for instance, as a graphics primitive in a software system that can draw cubes, and specify its center location, orientation and size rather than directly specifying its vertices' six positions.

Query 1: how many real numbers does it take to specify a cube as a primitive in 3d space? How many would it take if we specified the location of all its vertices?

Query 1A: (advanced, optional): Given a specification for a cube as a primitive, write an algorithm which generates the locations of its vertices. //Since we have not provided an official description of the degrees of freedom of a cube, you may choose your own for this problem.//

Back to the Book: We breeze through Chapter 1, noting a few high points. You should TAKE GOOD NOTES in class and write out your own DEFINITIONS of each of these terms, for they will occur on examinations!

Virtual Reality (VR) - entertainment term
Virtual Environment (VE) - the technology, without implying a replacement or duplication of reality
Realtime simulation, beginning with flight simulators
Realtime Image Generation
Immersion
Tactile feedback
Acoustic Feedback
VR Databases
Physical Simulation
Augmented Reality

Historical Development of VR

<skip the history of computers!>
1940: Link Trainers - we have one of the originals,  here in Orlando!
1963: SKETCHPAD - Ivan Sutherland - one of the founding fathers of Computer Graphics, VR, Object Oriented Software
1979: Molecular Docking and Force Feedback, Fred Brooks U. of North Carolina --->UNC Computer Graphics
1980: Virtual Aspen --> MIT Media Lab, Nick Negroponte
1980: Virtual Cockpit, Tom Furness -->> HITLab, U. of Washington
1984: Gibson wrote Neuromancer
1986: NASA/Ames, Space Station Remote Manipulation --> VR and Jaron Lanier
1989: U. S. Army STRICOM --> Visual Systems Lab at IST
1992: Stephenson wrote Snow Crash
1994: VRML Consortium (VAG) began work
1996: The VR Crash: many companies go out of business
1998: The VR Wars: Java3D, Chrome and who knows what's next?

Assignment for Wednesday: Read Chapter 3, undertake the Queries in Lecture 2.

Back to the course index
Back to the course syllabus
Back to the previous lecture
Onward to the next lecture