Computer Graphics Workshop '97 Syllabus
This year the lecture for 1/13 was split and combined with the lectures
for 1/10 and 1/15. Therefore we had one "extra" lecture, which is dated
1/30 on the course notes (although it was actually taught on 1/29).
1/6
- Administrivia
- Purpose of the course
- The final project
- The development environment
- Paradigms of Open Inventor
- Creation of a simple scene graph
1/8
- Organization of Open Inventor
- Nodes
- Fields
- Basic data types and naming conventions
- How to read the man pages
1/10
- Reading/writing Open Inventor scene graphs
- Structuring scene graphs
- Traversal state
- Group nodes
- Vertex based shapes
1/13
- Vertex based shapes - completion
- Fields - reprise
- Single vs. multiple-valued fields
- Number of elements in an mfield
- Notification
1/15
- Inventor application model
- Direct control of program - disadvantages
- Callbacks and the Inventor Xt main loop
- Sensors
- Timer sensors
- Idle sensors
- Node and field sensors
- Other types of callbacks
- Full explanation of the callback mechanism
1/17
- Interactivity via selection
- Interactivity via events
1/21
- Design and implementation of Tetris in Scheme
- Design of the game
- Analysis of the implementation
1/22
- Networking
- SocketMan
- Client-server
- Peer-to-peer
- Group
- Source code for examples
- client.scm
- server.scm
- mclooper.scm
- mcsender.scm
- cone-sender.scm
- cone-receiver.scm
- cone-network.scm
1/24
- Engines
- Field to field connections and engine outputs
- Reference counting and engines
- Engine networks
- Engines and animation
- Cameras
- Types of cameras
- Cameras and viewers
- Lights
- Types of lights
- Lights and viewers
1/27
- Using Open Inventor in C++
- How to prototype in Scheme
- Scheme design goals
- Conversion rules for C++
- Discussion of the prototyping strategy
- How to write better object-oriented software
- Opinions
- C++ Definitions
1/29
- Why scripting languages are useful
- How they are implemented
- Interfaces to C and C++
- Automatic interface generation
- Example applications
1/30
- VRML 2.0
- Differences between VRML 2 and Open Inventor
- Animation using VRML 2
1/31
- Final project presentations