John Brosz's 591 Web Site
Labs: T01 (MW 1300) in MS 239.
What's up . . .
Lectures: L01 (TR 930) in ICT 116.
Contact: brosz at cpsc.ucalgary.ca
Office: None, email me.
- April 16 - Presentations of projects in lab.
|Wednesday (MS 239) 1:00-1:50pm|
|1st||Leon and Roberto|
|2nd||Peter and David|
|3rd||Peter, Thomas, and Beverley|
|Thursday (ICT 116) 9:30-10:45am|
- April 14 - This will also be a project lab. For question 3c of
assignment 4 please do not use the 'Bezier knot sequence'; it makes the
calculation the same as 3b and you will not get full marks.
- April 9 - This lab is going to be a project lab. Come to work
on or get help with your project or assignment 4. Take some time to check
out these sample questions.
The final exam is likely to feature these (or modified version of these)
questions. Please email me with any questions about them you may have. In
other news your project presentations will be split between Wednesday's lab and
Thursday's lecture next week. Email me ASAP to indicate your preferred day
and order. I'll post a schedule here soon. Lastly your project report is going
to be due on BSD (Friday, April 18).
- April 7 - Not much happening in lab today, for lack of anything
else I'll give a general overview of radiosity. Also here (1, 2) are my slides from my lecture on
- March 31 - Assignment 3 marking is finished, I'll be handing them
back in lab. I'll go through the answers for questions 3 and 5, and discuss
the Radiosity hemicube technique.
- March 24 - I'll be spending a bit of time demoing the web site
http://www.e-mri.org/image-formation/fourier-transform.html. This website
shows correspondance between a signal and its Fourier transform. I'll also
discuss a bit of theory behind the redbook trackball example
(code is here). This won't take long so please
bring any questions about your projects, if you have any.
- March 17 - Pretty much all of Monday's lab is dedicated to an overview
of B-Splines. I'll also talk about assignment 3 for a bit.
- March 12 - I'll be going through some code for picking 3D points in
- March 5 - Vertex arrays and assignment 2 marks.
- March 3 - I'm going to discuss alpha blending in OpenGL.
- February 25 - Here are instructions to
create a webspace with your cpsc account. In lab I covered texture mapping.
- February 21 - In the last lab before reading break I tried to give
a bit of formulae that would assist in creating a shader that achieved a fisheye
projection. Due to half GLSL strangeness and half typos this ended up being
somewhat useless. Here's a better version that should work, but be very careful
as this projection is very tempermental.
p = eye coordinates of vertex (after multiplication by modelview but not multiplied by projection)
d = length(p) / RADIUS -> radius is the radius of your fisheye hemisphere
p = normalize(p)
float u = atan2(p.y,p.x)
float v = 2.0 * acos(-p.z) / PI -> this was my typo in lab, I put a + instead of a *
gl_Position.x = cos(u) * v
gl_Position.y = sin(u) * v
gl_Position.z = d;
gl_Position.w = 1.0;
So, I hope that helps. I will likely go over what is going on in a fisheye projection in
lab next Monday.
- February 13 - I'm going to go through vertex and fragment shaders
that implement the default OpenGL behaviors. The code for these shaders is
- February 11 - More discussion on GLSL and using shaders in OpenGL.
Also the assignment one marks are here.
- February 5 - Here is the starter code for assignment 2
(Windows code - uses GLUT)
(Linux code - does not use GLUT). If working in
Windows I do recommend taking a look at the Linux code
as I've gone through and added some comments to the code. It is likely that
the Linux code will work in Windows however I have not tested this.
- February 4 - I covered material related to homogeneous coordinates.
- February 1 - The lab machines should now work. The problem was due
an "upgrade" of video drivers. The drivers have now been downgraded and seem
to work. If you have any further problems please email me (and bugzilla) ASAP.
- January 31 - There is a problem in the lab as the Linux machines video card resets when running
OpenGL code. I'll post an update here when the kind bugzilla technicians have
found the problem.
- January 30 - Assignment 1 stuff, then a review of QT and some OpenGL
material (namely QT overview, then OpenGL lighting and display lists).
- January 28 - Project proposal, example of using glDrawPixels for Assignment 2, assignment
submission, lack of GLUT, and QT tutorial. Example code is here.
To compile this use:
g++ -lGL -lGLU -lXxf86vm filename.cpp.
- January 23 - I reviewed some math starting with basic linear algebra material
such as dot product, cross product, and projection. I also ran through calculation
for 3D distance between a point and a line as well as distance between two lines.
I also ran through the calculation necessary to change from one coordinate frame to
another as well as the calculation for a rotation matrix that will rotate a given
vector onto another given vector.
- January 21 - The first lab. I discussed the likely format of assignments
and quickly went through a wide variety
of ideas for the project. If you want you can form a group for the project however be aware that more is expected
from a group than an individual. It would also be a great idea to do your paper critique on a topic related to your
project. I recommended that you use C++, OpenGL and QT or GLUT if you are going to work in LINUX. If you wish to do
your coding in Windows that is fine as well, my recommendation is to use .Net and either OpenGL (check out
TAO) or DirectX. I also quickly ran through the basic of using STL vectors, a useful data structure for
anyone coding in C++. Lastly I did quick poll to see what math you would like reviwed in Wednesday's lab.
- Assignment 4 - Sampling and Shadows - link
- Due April 15
- Hand into assignment boxes.
- I will email out the marks once I am done marking.
- For 3c please do not use the 'Bezier knot sequence', use something else,
preferably the standard knot sequence (i.e., 0, 1, 2, ...).
- Assignment 3 - Parametric Curves
- Due March 20
- Will be handed back in lab.
- Assignment 2 - Shaders - link
- Marks are here.
- Due February 26.
- Base code is here: (Linux, Windows)
- Submit executable/binary, readme, and code. Also submit an image of each
shader work as well as a description of what each shader does and how.
- Marking Scheme: 1 mark for each shader. Only half a mark for the shader
if it doesn't work right or the shader description doesn't match the shader.
- Assignment 1 - Gouraud Shading - link
- Marks are here.
- Due Jan 31.
- To hand in please email a zip or tar file of all code and executables to
brosz at cpsc.ucalgary.ca. Be sure to include compilation instructions as well
as any necessary dlls (for those developing in Windows).
- Colour intensity: basically just pick good colours that make it possible
to tell that you're doing the Gouraud shading properly. If you want
a formula use either r+g+b = .8 or Max(r,g,b) = 0.8, your choice.
- Colour variability: to show that you can change the colour all you have to
do is make colour a global variable (i.e., no magic numbers!). If
you want to be more fancy you
can take colour as input via command lines, input file, or widgets on
- Glut isn't working in the lab. I've posted code under the Jan 28 entry
that directly uses XWindows. You also can use QT or GLUT on a
Windows system. UPDATE: Apparently freeglut is somewhere on the lab
machines . . . I haven't looked into this yet, once I've had time to
check it out I'll make another post showing how to compile with
Other useful pages
- Due Frday, April 18 (midnight)
- No minimum/maximum length . . . cover what you did (and why). You
don't get more marks per page so wordiness won't help. Screenshots and
pictures are good things to have in a graphics report.
- On Wednesday, April 16 in MS 239 and on Thursday April 17 in ICT 116.
Email me ASAP to secure your preferred date and order. A schedule will
be posted here soon.
- Right now it looks like you will have about 10 minutes to present (this might change).
- I assume you will want a Windows machine (with PowerPoint) and
projector. If you need a Linux machine you need to book your
presentation for Wednesday. If you need anything else, please
email me as soon as possible.
- Again, pictures are good.
- Due February 4.
- Single Page.
- Describe project and cite some references.
- If working in a group, list how project will be divided between group members.
- Estimated timeline.
- Links to past projects and ideas: