CS 485 Spring 2010, Assignments

Our TA is: Marshall Riley (mriley@cs.siu.edu). His office hours are:
 MW 11:00-12:00 in FANER 3129 and TR 3:00-4:00 in CASA 104.


Read Chpt 1: Intro to Graphics and Graphics Systems.
Some interesting applications of computer graphics:

ACM's special interest group on graphics, SIGGRAPH has a big conference every summer with a student volunteer program.
Check it out!(FAQ Deadline is 15 February 2010)

Some of the topics we've been covering: CRT, raster & random refresh, Graphics Pipeline, Modeling and Rendering, Graphics API.
I mentioned 3D printers and you may be interested in the following sites for more information (RepRap, CandyFab).  We also spoke about pdf and renderman acting as interfaces between modeling applications and renders. (PDFBox - open source Java PDF library, Blender is an open source graphics app with modeling/rendering/animation features that can export Renderman)

Begin reading Chpt 2: Graphics Programming. After our quick introduction to programming 2D graphics with Java, we will have more perspective when considering graphics api options.  We meet in the Lab (Faner 2102) Friday 1/29.

An example given as a zip file which can be imported as an Eclipse project is provided. If you haven't used Eclipse before, brief instructions on importing a Java OpenGL project under Eclipse are given. Note that, Java2D is already included in Java so no extra libraries need to be loaded (JOGL does require extra libraries). For additional information on Java 2D graphics see Sun's tutorial on Java 2D. as well as a chapter on Java 2D graphics from "Core Web Programming" (may be dated).

Lab 1 (485 Name Badge with Java2D) is assigned (due Fri, Feb. 5)

Next we turn our attention to OpenGL.  To access OpenGL with Java, we use JOGL ( JSR 231 javadoc and JOGL (Java OpenGL) User Guide). The OpenGL Programming FAQ as well as the online verisons of older editions of the OpenGL Ref. Manual and OpenGL Prog. Guide are useful sources of information. JOGL Test instructions If you are thinking about developing OpenGL code with C/C++, take a look at the draw example application implemented using C and GLUT in the file draw.c.

Lab 2 (pinhole/synthetic camera - OpenGL) is assigned 2/5 (due Fri, Feb. 19)

Jogl JSR 231 1.1.1 also has a glut object which has routines for rendering text. Jogl also gives the option of using fonts available through Java with the TextRender class. The Opcion (open source Java) project lets you examine the fonts available on your system.

Begin reading Chpt 2: Graphics Programming. After our quick introduction to programming 2D graphics with Java, we will have more perspective when considering graphics api options.  We meet in the Lab (Faner 2102) Friday 1/29.

Read Chpt 3:  Interaction, logical & physical devices, event processing. Display lists, graphics client/server. Ideas for picking using different methods.

Begin reading about transforms in Chpt 4. We are only looking at 2D transforms for the moment. We discussed how transforms can be represented with matrices and combined together.

Hw1 was assigned - due Wed, Feb 24

We  discussed how to determine if a polygon is convex, tessellation and winding numbers.  Handouts on doing polygon tesselation with OpenGL glu routines and picking with OpenGL names and select mode were covered.  More discussion about OpenGL picking can be found in the OpenGL Programming Guide (link to the pick chapter) and this online tutorial at Lighthouse3D.

Exam 1 will be on Mon, March 1.

We will review for the exam on Friday, Feb. 26
Lab 3 (2D Hierarchical Modeling and OpenGL Picking) assigned (due Wed, Mar. 17: EXTENDED to Wed, Mar. 24)

Next we start looking at 3D Modeling and viewing

SPRING BREAK March 8-12

Mon 3/15 meet in the lab to assess progress on Lab 3 (2D Hierarchical Modeling and OpenGL Picking)  (due Wed, Mar. 17)

3D transforms, including rotations about an arbitrary axis and quaternions (Chpt 4).

Lab 4 (3D Bugs with viewports and texture) assigned 3/24 (due Friday, April 9 )
HW2 was given as a HO in class (3/26). Due on 4/2.

Chapter 5 of the text covers positioning the camera and projections. (gluLookAtgluPerspective, glOrtho, glFrustrum etc.)
We introduced 2D texture also covered in the text in sections 8.7.1, 8.8.1-4 (glTexCoord, glTexParameter ( CLAMP, REPEAT ) etc.)

Read sections 7.3-6 about clipping (region codes, line clipping, polygon clipping, bounding extents and other primitives)

Read about hidden surface removal in section 7.11.
Quadtrees and Octrees are described in section 10.12.3

Exam 2 will be on Mon, April 12. (Review on Friday, April 9)

3D object representations, Constructive Solid Geometry, Ray Tracing (Sec 13-13.3.1, 10.12.1)
You might also look at the documentation for POVray available online and through the program itself.

Lab 5: Making a Movie: Part 1 (must work in groups 2-3) due start of class, Wed., April 28

We continue to explore how to make more realistic images.
Lighting and Shading Models (Sect 6-6.3.3: specular, diffuse, light sources, lighting formula, important vectors)
local vs. global illumination

Friday, April 30th, meet in the CS Conference Room in Faner (Animation)

Transparency and alpha, alpha as a measure of pixel coverage, anti-aliasing, nyquist frequency, super sampling, subpixels
Figure 8.29 in the text gives a nice illustration of aliasing that can occur in patterns as a perspective project increases the signal frequency
Read sections 7.12, 8.11.4, 8.13.1
Color blending with alpha (finding a pixel's color by blending foreground and background color using alpha)
Seed fill algorithms (flood and boundary) (practice examples) Section 7.10.4

Intermediate texture objects, layered textures, bump mapping, solid/procedural textures Section 8.7,8.12.2
Animation (key frames, inbetweening, kinematics/inverse kinematics), section 10.6, layered tracks, masks
3d object representations (height fields, sweeps, meshes, physical modeling - particle systems, flocks/herds, fractals etc.)
Sections  11, 5.7
Bezier curves (control points, convex hull, interpolation vs. approximation, subdivision, computing by hand) Sections 4.1.8, 12.6.1, 12.2

You can get hands-on experience with many of the topics listed above, using POVray.

Line rasterization methods (y=mx+B, DDA, midpoint/Bresenham's) Sections 7.8-9

Class meets in the CS Computer Lab (Faner 2102) on Friday, May 7 for Movie Day. All Lab 6 materials should be ready to demo at this time. Each group should should submit a CD with all their materials.

Lab 6: Making a Movie: Part 2 (must work in groups 2-3) due start of class, Friday, May 7

Quadtrees and Octrees are described in section 10.12.3

Exam 3 is Friday morning, May 14 (scheduled at 7:50 but it won't require the full amount of time). Recommended start time is 8:15a. Exam will emphasize material since the last exam.

A page showcasing the movies created by the class for lab 6. You might also enjoy seeing "Pigeon Impossible" an award winning short made with computer graphics.