CS 485 Fall 2008, Assignments
Our TA is: Hongbo Zhou (hongboz@siu.edu). His office hours
are 2-4 on Tues & Thurs.
For 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). 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. C/C++ developers should
check out GLUT
as well.
CS 2102 Lab Hours are 8a-8p M-Th; 8a-4:30p on F
JOGL
Test instructions
Read Chpt 1: Intro to Graphics and Graphics
Systems. We mentioned 3D printers and you may be interested in the
following sites for more information (RepRap, CandyFab).
The graphics pipeline and graphics api's. We introduce 2D graphics with Java. An example given as a zip file which can be
imported as an Eclipse project is given. If you haven't used Eclipse
before, brief instructions on importing
a Java OpenGL project under Eclipse are given here. Note that,
Java2D is already included in Java so no extra libraries need to be
loaded (JOGL does require extra libraries).
We meet in the CS workstation lab (Faner 2102) on Friday.
Read Chpt 2: Graphics Programming. After our quick
introduction to programming with Java2D, we have more perspective when
considering graphics api options. Next we turn our attention to OpenGL.
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.
You may also find this additional information
for using OpenGL/Glut with C++ helpful.
Begin Reading 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.
Hierarchical modeling
- example of 3 of hearts playing card. Transforms in OpenGL. Robot Arm
example. We also discussed how to
determine if a polygon is convex, tessellation
and winding numbers.
Homework 1 is due at
the start of class on Mon, Sept. 29.
Exam 1 will be on Wed,
Oct 1. We will review for the exam on Mon, Sept. 29
Hierarchical modeling
- example of 3 of hearts playing card. Transforms in OpenGL. Robot Arm
example. We also discussed how to
determine if a polygon is convex, tessellation
and winding numbers.
A bonus assignment to
earn points to improve exam 1 scores was given. This is an individual
assignment due on Fri. Oct. 10
Picking with OpenGL
SELECT mode. More discussion about OpenGL
picking can be found in the
OpenGL Programming Guide (link
to the pick chapter) and this online tutorial at
Lighthouse3D.
Read about 3D transforms in Chpt 4.
Transforms are extended to 3D. The biggest complication is rotation as
now we must specify which axis to rotate about. Rotations about the 3
primary axes can be used to form a rotation about an arbitrary axis.
Quaternions can also
be used to do aribitrary 3D rotations (see text sec 4.12)
Chapter 5 of the text
covers positioning the camera and projections. (gluLookAt,
gluPerspective,
glOrtho,
glFrustrum
etc.)
We introduced 2D texture
covered in the text in sections 8.7.1, 8.8.1-4 (glTexCoord,
glTexParameter
( CLAMP, REPEAT ) etc.)
Homework 2 was
assigned (Oct. 27). It is due on Mon, Nov. 3
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
Meet in the Faner 2102 Lab on Friday, Nov. 7. to experiment with creating,
texturing and rendering 3D objects with AOI.
Exam 2 will be on Wed,
Nov. 12. We will review for the exam on Mon, Nov. 10. The due date for
lab 4 is extended to Friday Nov. 14
Raytracing and
Constructive Solid Geometry (Sec 13-13.3.1, 10.12.1)
Lab 5: Creating an Animated Movie
(must work in groups 2-4) due start of class, Friday Dec. 5 (Movie Demo
Day!)
Lighting and Shading Models
(Sect 6-6.3.3: specular, diffuse, light sources, lighting formula,
important vectors)
local vs. global illumination
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)
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
Seed fill algorithms (flood and boundary) (practice
examples) Section 7.10.4
Class meets in the CS Computer Lab (Faner 2102) on Friday,
Dec. 5 for Movie Day. All Lab 5 materials should be ready to demo at
this time. Each group should should submit a CD with all their
materials. An "index.html" webpage should enable linking to write-up
material and allow playing the movie.
|
Exam 3 will be given
during finals week: Mon, Dec. 8
at 1pm in our regular classroom. This exam will emphasize topics covered
since exam 2 (Starting with Raytracing and CSG.)