Graphical Programming              Fachhochschule Muenster                Fall 2006

Description: An introduction to both the hardware and software utilized in computer graphics. The emphasis is on a top-down, programming approach, using a standard application programmer’s interface. Students will create three-dimensional and interactive applications, in addition to studying several of the classic, low-level, rendering algorithms.

Lecture:
Mittwoch     08:15 - 09:45     HGI-114 ("downtown" Steinfurt campus)

Praktikum:
Mittwoch     10:00 - 11:30     HGI-14 ("downtown" Steinfurt campus)


Instructor:        Dr. Gerald Kruse

Office Phone:   0 2551 - 962 - 560

E-mail:              kruse@juniata.edu

Textbook:         No textbook is required for this course. Students will find the website www.opengl.org quite useful, as well as Steve Cunningham’s book, Computer Graphics: Programming, Problem Solving, and Visual Communication. The OpenGL Programming Guide, also known as the “Red Book,” is a good resource for those interested in continuing study in computer graphics. The Nate Robin’s Tutorials are available at http://www.xmission.com/~nate/tutors.html . Finally, this course is based on a course taught at Juniata College, which uses Interactive Computer Graphics, A Top-Down Approach with OpenGL, by Angel, 4th edition, ISBN 0321321375, which has corresponding PowerPoint slides 1 - 11 and 12 - 24.

Grading:          Final Project, due Monday, December 18                                    40 %
                        Exam Wednesday, December 20, 08:15 - 10:00, HGI-114        60 %
(Note: In order to be eligible to take the final, students must successfully complete each Praktikum assignment, and each student must register with the office of the Dekanat.)

Praktikum:
Students must attend the Praktikum and demonstrate their work, and they are free to leave once their work is complete. Students may work with one partner on the Praktikums.

While students should strive for completing their Praktikum during the weekly session in which it is assigned, it only needs to be complete by the final Praktikum session on Wednesday 06.Dec. Students not completing all their Praktikum assignments by this deadline will NOT be eligible to take the final exam.

Daily Schedule:
04.Oct, Wed - Introduction to course for interested students, D-250

11.Oct, Wed Lecture- Introduction to Instructor, Course, and Computer Graphics, Raster, Frame Buffer, Scan Conversion, DDA Algorithm
11.Oct, Wed Praktikum -

18.Oct, Wed Lecture- Display, Light and Color, Pipelines, Matrices, Intro to OpenGL, Intro to Interaction
18.Oct, Wed Praktikum -

25.Oct, Wed Lecture- Events, Hidden-Surface Removal, Double-Buffering, Intro to Modeling, OpenGL Matrices
25.Oct, Wed Praktikum -

01.Nov, Wed - NO CLASS, Holiday

08.Nov, Wed Lecture- Viewport, Reshape, OpenGL Matrix Operations, Affine Spaces
08.Nov, Wed Praktikum -

15.Nov, Wed Lecture- Graphical Transformations and Transformation Matrices
15.Nov, Wed Praktikum -

22.Nov, Wed Lecture- Interpolation, more Double-Buffering, Color Cube, Projection, Perspective Transformation
22.Nov, Wed Praktikum -

29.Nov, Wed Lecture- Scene Graph, Lighting and Shading, Bitmaps, Texture Mapping
29.Nov, Wed Praktikum -

06.Dec, Wed Lecture- Blending and Fog, Bezier Curves, Review
06.Dec, Wed Praktikum -

13.Dec, Wed - No Class

18.Dec, Mon- Final Project Due
20.Dec, Wed - Final Exam, HGI 114

Content:
    Graphics Systems and Models
    Graphics Programming
    Input and Interaction
    Geometric Objects and Transformations
    Viewing
    Shading
    Implementation Issues
    Scene Graphs
    Discrete Techniques
    Curves and Surfaces
    File Types

Computing Environment:
     Win 32 and UNIX, C++ with OpenGL.  We’ll use the Graphics Library User’s Toolkit (GLUT) as our window manager.

     Running Visual C++

     Installing GLUT on a Win 32 system running Microsoft VisualStudio v6.0 or earlier:
        copy glut.h to C:\Microsoft Visual Studio\VC98\Include\GL
        copy glut32.lib to C:\Microsoft Visual Studio\VC98\Lib
        copy glut32.dll to C:\WINNT\system32

     Installing GLUT on a Win 32 system running Microsoft VisualStudio .NET:
        copy glut.h            to     C:\Program Files\Microsoft Visual Studio .NET\Vc7\Platform SDK\include\gl
        copy glut32.lib      to    C:\Program Files \Microsoft Visual Studio .NET\Vc7\lib
        copy glut32.dll      to     C:\WINDOWS\system32
 
glut.h
glut32.lib
glut32.dll
HelloWorld.cpp

To create an executable XXXX for a file XXXX.cpp, at a UNIX command prompt, type:

g++ XXXX.cpp -lglut -lGL -lGLU -lXmu -lX11  -lm  -L/academic/glut/lib/glut  -I/academic/glut/include –o XXXX
 

You might find the following useful as a UNIX makefile.  Type:

make XXXXX

where  XXXXX.cpp is the program to be compiled and the following is in a file called  Makefile

----------------------------------------------------------------------------------------------------------------
CC = g++

LDLIBS = -lglut -lGL -lGLU -lXmu -lX11 -lm

LDDIR = -L/academic/glut/lib/glut

INCLUDEDIR = -I/academic/glut/include

%: %.cpp
        $(CC)  $@.cpp $(LDLIBS) $(LDDIR) $(INCLUDEDIR) -o $@
----------------------------------------------------------------------------------------------------------------
 

Standard Grading Scale:
[95% , 100%]  1.0 
[90% , 95%)  1.3 
[85% , 90%) 1.7 
[80% , 85%)  2.0 
[75% , 80%)  2.3 
[70% , 75%) 2.7 
[65% , 70%)  3.0 
[60% , 65%)  3.3 
[55% , 60%)  3.7 
[50% , 55%)  4.0 
[0% , 50%)  5.0

My homepage