csc305 computer graphics

updated by Brian 07/December/2007 13:30

New Important Information Will be added here

Final Exam Marks posted to marks page + Answer to ray counting question

Last year's exam online. pdf of space sub-division notes online.

Assignment Three

Mid-term Marks and Ass2 marks added to marks page

Many of the links have been fixed at the end of the page.

Old exams added. (Note that the notation may vary from the current notes in old exams).

Assignment Two (10%) Due 5, November 2007

Assignment One (5%) Due 1, October 2007

C (not C++) tutorials will be run by CSC 360 see their website for details

(TF01)   F 3:30 - 4:30 p.m.   COR A121 


some examples us qt2 or qt3 dlls.

See end of page for links to old exams.

Page last modified on October 18, 2007 by Chris (Broken Links will be fixed soon!)

 

The notes are continually being updated and the schedule of lecture subjects can be slightly varied to reflect extra notes. Lecture notes will be updated the evening before the lecture. These are to be used IN CONJUNCTION with the text book and do not serve as a substitute.

 


You should submit your homework using the ENGR submission system.

The submission system is now active for assignment 1

    To create a compressed tar file containing your entire assigment type:
tar cvf hw1.tar [your assignment directory] bzip2 hw1.tar

 

How NOT to go about a programming assignment
NOTE: This text was published by ACM's SIGCSE in the June 2004 issue of Inroads, the SIGCSE bulletin.

 

 



 

Instructor: Dr. Brian Wyvill

Brian is the less hairy one on the left.

Lectures:
Office: CSC 516
Office Hours: Wednesday 11:30 - 13:30 p.m
E-mail: blob@cs.uvic.ca
Webpage: http://www.cs.uvic.ca/~blob
Course Webpage: http://courses.seng.engr.uvic.ca/courses/2007/fall/csc/305

trainCourtesy Erwin Dr Groot

treeBatikCourtesy Callum Galbraith

TA: Chris Serson

 

 

Labs: 1:30PM- 2:30pm ECS354

3:30PM- 4:30pm ECS354

 
Office:  
Office Hours:  
E-mail: traagen@csc.uvic.ca  
Webpage: www.csc.uvic.ca/~traagen

 

 

dogCourtesy Ryan Schmidt

 

Course Outline (Draft Only - Details to be updated)

Click on the subject areas to display course note files in Portable Document Format (pdf) which can be viewed using the Adobe Acrobat viewer.  This software can be downloaded from http://www.adobe.com/acrobat

Textbook: Fundamentals of Computer Graphics 2nd Edition; Peter Shirley www.cs.utah.edu/~shirley/books/fcg2/
Assignment two examples from Chris :
GLViewPort.dll
GLViewPort.zip
ViewportsDemo.zip
 

Some examples use qt2 or qt3 dlls.



Dates Topics Textbook References

Week One

Sep 5th

Introduction Chapter 1, Chapter 2, Chapter 5 (review of Linear Algebra essentials)

Week Two

Sep 10

Hardware and Raster Fundamentals, Line Algorithm, circles forward differencing Chapter 3

Week Three

Sep 17

2D/3d transformations, scenegraph, homogeneous transform properties

Chapter 6

Week Four

Sep 24

DAGs and other hierarchies,

viewing, perspective

Chapter 7

Week Five

Oct 1


modelling, Parametric curves, BSplines

chaikin.exe

Assignment One (5%) Due 1, October 2007

Modelling (pg 2,4)parametric curves (pg 36,40, 303), Bezier-splines (Ch. 15)

Week Six

Oct 8

B-spline algorithms, patches, Generalized Cylinders,

Bloomenthal article, subdivision

(Note: I have linked to the powerpoint as not everything shows up in the pdf. pdf is also loaded)

windows demos: bezier.exe, chaikin.exe, qt-mt230.dll

Chapter 15

Week Seven

Oct 15

decastlejeau implicit modeling

 

Implicit (Ch.15)

Week Eight

Oct 22

Review

 

 

Week Nine

Oct 29

 

For ass3 see: Birthing a ray tracer

Mid-Term Exam Thursday, November 1, 2007 (25%) exam in class

Assignment Two (10%) Due November 5

Rendering (pg 2, 197, 461), Images (Ch. 20, 22)

Chapter 10


Week Ten

Nov 5

Rendering, Introduction to ray tracing


Z-buffer (Ch 8), anti-aliasing (Ch. 4), Lighting (Ch. 19)
 

Week Eleven Nov12/14/15

Reading Days 12-14th

Nov 15

No Class Monday Wednesday

Lighting shading

Chapter 9

Week Twelve

Nov19

Faceted shading, Gouraud Shading, Phong shading.

Ray Tracing One RT2

Chapter 9

Week Thirteen

Nov 26

Ray Tracing Two ray tracing hierarchies
Texture mapping and anti-aliasing.
Chapter 11

Week Fourteen

Dec 3

 

Images: grey levels, gamma correction, colour introduction.

Final Exam Review

Assignment Three (15%) Due December 3rd

Chapter 16
 

 
    Note:

I am still trying to track down the useful documents for these links. I will get these working as soon as possible.

  Exercise 1:

Introduction, getting started with Qt and Doxygen


Exercise 2:

Getting further with Qt and started with OpenGL.

  Exercise 3:

Tutorial on Qt Designer

OpenGL Introduction

       
  Exercise 4:

2D OpenGL with QMouseEvents

 

  Exercise 5:

Erwin's CubeView Example.
3D OpenGL Intro
3D OpenGL Spheres using Quadrics

 

  Exercise 6:

Kevin Foster's Multiple OpenGL viewport example.
This code was written for a similar assignment for a different course. It opens 4 Qt-OpenGL viewports and draws a different view to each viewport. It was developed using Qt designer, so don't expect all of the code to be commented.
Untar the file by typing:
>tar -xvf as2base.tar
This will install the files in ./bss/
You will most probably have to do a make clean first. Go to ./bss/ and type:
>make clean
To compile type:
>qmake bss.pro
>make

Once compiled the Qt user interface code (similar to the contents of globjwin.*) is in the .ui directory (note the dot).

 

 
Exercise 7
Calculation of reference frames along a space curve by Jules Bloomenthal.
To calculate the Frenet (or otherwise) frame to orient the cross section of your cylinder.
 

    Assignment Weight Due Date
  1 5% October 1st
  2 10% November 5th
  3 15% December 9th - demo 10am Dec 10th
         

There will be 4 assignments worth 40% of the course marks. The assignments are programming tasks and should be submitted electronically by the dates indicated.

Your code should be easy to read and written by you. You may be given code by your TA and this should be properly credited within your program. You are NOT permitted to use any code that is not written by you, provided by your TA, or authorised for re-use by your TA.


 

Course FAQ

Getting qmake to work.
   
  Preparing PDF Documents
 
  Linear Algebra Review from Kelly Poon
  C++ Tutorial from Kelly Poon
  C++ virtual Tutorial from The C++ Virtual Library
  OpenGL.org website: There is a wealth of information on OpenGL.org (as well as their forums).
  OpenGL Tutorials
  OpenGL Red Book (OpenGL Programming Guide)
  OpenGL Blue Book (OpenGL Reference Manual).
  Interactive Introduction to OpenGL Programming
  QT 3.0 Documentation
  QT Class Descriptions
  Signals and Slots
  Birthing a ray tracer
  SIGGRAPH Ray tracing notes
  Exam from 1997. and answers.
 
The 1998 mid-term was a take-home exam.
 
Take a look at the old exams 96, and final 97.
 
Also look at the solution to the ray tracing problem from the 2001 final
 
A collection of old exam questions is available in pdf format.
  2007 exam
   
 

Jungle ppm files.

Nate Robbins' OpenGL tutorials contain a simple library for loading and displaying .OBJ files. The library interface is declared in glm.h, and implemented in glm.c.
Here is a simple example showing how to use Nate's glm library in Qt3 on linux -- you may use it as a starting point for your assignment.
A version of the tutorials with a Makefile editted to work on the lab linux machines can be downloaded here. (The source code linked on Nate's site should work as is under both OS X and Windows.)

Here is a wiki page containing links to some standard OBJ files and sources of free models.
Here is another wiki page, this one contains linux binaries for an example hw2 assignment, along with assorted tips to help you in your own implementation.

Some past exams have been posted: 1997 1999mid,1999final, 2000.midans94

 

OpenGL Viewport Control for Windows Applications in Visual Studios 2005. Get Source.

Note: An unresolved problem in this version exists: When you open the designer view, any GLEvent attachments you set get deleted. Not the functions themselves, just the linking code.

This Viewports Demo shows how to set up multiple viewports using the above control.

 

This page is kindly hosted on linux.csc.uvic.ca