This is an old course web from 2008
Old 2008 Course Web: Main / Main
You should check this page regularly for news and other announcements as this is the main way of spreading the word about class announcements. Check out the rss feed of this page, if you prefer to get your information that way. Either way, you will be held accountable for the information that appears on this page. This page will be updated frequently.
The key to the final is here.
You will receive email with
Actual location is here. Sorry about the confusion
The key for written assignment 3 is here
The final exam will The exam will be at 2:45pm on Thursday, 12/18. It is scheduled to be in Room 1221CS (the same room as lecture). (note: this is a new location)
There is an outline of topics that might appear on the exam FinalExamReview. If you look at previous year's web pages for the course (look to the left) you will find old exams which might be helpful.
A signup sheet has been placed on Blayne's door. There are 15 minute slots on Thursday (4:15-5:15) and Friday (2:30-5:15). Please sign up for a slot. If you cannot make one of these times, contact us ASAP. It will be difficult to plan a demo for a different time.
The fact that demos are happening so close to the end, and that this project is worth more than the others, means some inconsistencies in the late policy. Basically, we'll be more lenient with the project - we'd prefer you do more cool stuff than turn things in on Tuesday.
If you want specifics:
Everyone will have to give a demo of their town to Blayne and I next week (probably on Thursday).
Since people find the demos fun, last year we decided to do some of them "theater style." We reserved 1221, invited the whole class to watch, and let people present their projects in front of everyone. It was fun. Basically, only the people who were presenting showed up, but everyone had fun seeing everyone else's creation.
Note: there is no pressure to do a presentation demo. If you prefer to just give a demo to Blayne and I in the Starsky&Hutch lab, it won't change your grade or anything.
If you are interested in showing off your project in this kind of setting, send email to Blayne before Friday, December 5th (i.e. on Thursday or before). We need to know how many people want to do this so we can schedule it. The demo session would probably be Friday afternoon, December 12th.
I will have extra office hours this week to help people with their towns. On Thursday and Friday, I will be available from 4:00-5:00. I will stop by the Storm/Starsky&Hutch labs first (so if you come by my office and I'm not there, just wait a bit).
You probably noticed that I didn't assign something to be due on Tuesday, December 2nd. So there's nothing due on that day. Make sure that you're making good progress on the final project.
The written homework assignments are a good way for you to practice for the exam. So we'll provide you with some practice questions closer to the exam - but they won't be checked, or effect your grade (other than preparing you for the exam).
Project 3 has been graded, and your grades have been entered in Learn@UW.
Rough grading criteria:
Note that the usual late penalty has already been applied in the grades in Learn@UW.
Several people have started asking about it, so here's a general reply.
I do like to work with students (undergrads and grads) on directed study and research projects, for things that are on topics I'm interested in.
If you're interested in doing things next semester, I suggest taking the Advanced Graphics class - it will (probably) not be taught next year. This class will give you an opportunity to do projects, and will provide you with good background for doing projects later. Even if there is some specific topic you really want to know about, the general background will help you. (for example, if you're interested in realistic rendering, you'll need to know about geometry, perception, motion, ...).
If you really want to do a directed study project instead of Advanced Graphics (or in addition to it), I am willing to talk about, but expect to be steered towards the class and/or projects already in place in our group.
In future semesters, I am definitely willing to work with students on projects. For the summer, there is a Departmental research fellowship program.
I expect that CS679 (Game Technologies) will be taught next Spring.
A written assignment on curves and textures is due on 11/25 and is available at WrittenCurvesTexture.
So the things coming up:
The example code (the recommended framework for doing the final project) is available for download.
The old shader tutorial can be accessed at: HelloShader.HelloShader
The last project, GraphicsTown is announced at GrTown. We haven't made the example code available yet (but it should be ready today). But you should read it over.
Some short term deadlines: if you want to work with a partner, you must tell us by November 20th. And there is a checkpoint on November 25th.
There is a tutorial on Shader Anti-Aliasing for Procedural Textures in Main.ShaderAntiAliasing. We'll look at this example in class tomorrow, but I'm posting it so you can look at the pictures.
We'll do part of the grading for the Train Project in a demo session. We'll let you drive the train and show off its features. Part of this is that you need to be able to explain what is going on.
We've scheduled the demo session from 3:00-5:30 on Monday, November 17th. We'll schedule 15 minute blocks and try to see 3 demos in each. (we'll do multiple demos in parallel).
In class on Thursday, we'll have a signup sheet for demo times. After class, Blayne will put the signup sheet on his office door.
If you cannot make it during the demo timeslot, let us know and we'll make other arrangements.
Because we will begin grading on Monday morning (to prepare for the demos), no late assignments will be accepted after Sunday night.
The ShaderPractice assignment is announced and is due next week (the 18th). We'll talk about shader programming this week.
The CSL is having issues keeping RenderMonkey running on the lab computers, but they are working on the problem and should have it resolved soon.
The exams have been graded. You should get email from Blayne with your grade later, and we'll make the exams themselves available in the next few days.
Generally: the statistics of the exam work out well (nice "normal" distribution, median=mean, ...). At least one person got full credit for each question (although no one got all the questions).
We adjusted the point ranges so people on the edge got the higher grade (no one is 1 point away from a better grade): 84-93=A, 77-79-AB, 71-75=B, 62-68=BC, 60=C, 50=CD, 43=D.
Is posted at: pub:2008-Fall-Midterm-key.pdf
As you probably noticed, we changed the order a bit and started talking about texture in class.
On Tuesday, we'll wrap up curves with some practical issues (it will help you on the project), and a discussion of Bezier Curves (which are really useful in practice). Be sure to read the book though - Shirley Chapter 15 covers more than we did in class - in particular, the section on Bezier Curves is particularly important for exam questions. You are not responsible for B-Splines (Section 15.6.2).
On Thursday, we'll talk more about texture. Be sure to read up on texture since you'll need to use it later in the class. The readings are:
We'll have a help session on Wednesday 5th at 5pm. (Later than usual time since there's a faculty meeting). Bring questions, and we'll try to bring answers.
We'll also talk about the train in class on Tuesday the 4th.
I've been getting some questions about this, so I figured I should explain.
There are also opportunities for directed study projects in any semester.
You should have received (in your CS mail account) feedback for Written HW #2. Make sure to take a look (and compare them to the sample solutions), as these types of questions could show up tomorrow on the exam.
I will not hold office hours next week (10/27-31).
The midterm exam will be at 7:15pm on Tuesday night, October 28th, in room 1221 CS (our normal lecture room). The exam is scheduled until 9pm. It shouldn't take you that long.
All lectures to date are fair game for topics. While any of the assigned readings are fair game, the questions will focus on things discussed in class. You might want to look in the book since it explains some things better.
You might want to look over the Lecture Notes page as a reminder of what we discussed in class.
Is announced atP3-Train.
We have made handin directories for the construction site project. If you had made your own directory already, that's OK - we'll move things for you.
Are posted here
Blayne will hold an extra office hour today (Friday, 10/17) between 2:30-3:30.
I will stop by the Storm and Starsky&Hutch labs around 4:30 or 5:00 today (Friday) to answer questions. I can't give an exact time because it depends on when a meeting on the other side of campus is over.
This year, I'm mixing in talking about OpenGL with talking about everything else. Last year, I had a single lecture on OpenGL. My notes for it are here. Everything in those notes are things we've discussed, but they are organized in a different way.
There has been an update to the framework code. In case you made any of your own changes to the framework code, the files changed were SiteDisplay.cpp, SiteDisplay.h, ConstructionSiteWindow.cpp, Utilities/ArcBallCam.h and Utilities/ArcBallCam.cpp. Please use these versions of the code, which if you didn't make any of your own changes, can just replace the existing framework code.
A written assignment to give you practice with transformations (due next Tuesday) is at WrittenTransforms
I am continuing my tradition of making my notes for the lectures available to people. Look at the sidebar (to the left), or just go to Lectures. They may or may not be helpful.
So the late policy for projects was based on some old notions of how the class worked. It has been clarified (I hope) to be more consistent with everything else this year.
What it means for Project 1: we will accept late assignments anytime on Friday. (if you think this is a last-minute change and messes you up, let me know. We will accept "very late" assignments until we start grading (since we won't be doing in-person demos). We will begin grading on Tuesday morning, so don't expect to be able to turn things in after Monday.
It seems that a law degree might have been good preparation for teaching graphics.
For some of you, the AFS service outage yesterday meant you lost a whole afternoon to work on the project. (and I understand that the afternoon before the due date is an important time).
We've decided the fair thing to do is to give everyone an extra day. So the project is now due Wednesday, October 1. Even if you weren't affected by the service outages.
I am aware that some people are having problems with the CS File Servers. Unfortunately, CSL email isn't working, so I can't even ask them what's going on!
I will hopefully be able to provide an update in the morning. I understand that having widespread computer issues the day before a project is due messes everyone up.
As many of you are probably aware, email in CS has been broken for the past few days.
So, if you're trying to ask last minute questions about the project, you might not be able to do so.
Some students have pointed out...
(1) Any implementation is doing some for of interpolation (reconstruction) and pre-filtering. Its just that the "basic" implementation (reverse warping with nearest-neighbor interpolation) is using bad filters (box for reconstruction, unit spike for pre-filter).
So the correct way to phrase the "features" would be "better filters for reconstruction and pre-filtering". So you would need to provide better interpolation than nearest-neighbor, and better pre-filtering than nothing. (which is nominally just a really bad filter).
(2) Getting splatting right for the P2 warp requires all kinds of complex things we didn't go into detail in class (like how to deal with splats that cover larger regions, or that only cover parts of destination pixels). Making simplifying assumptions usually leads to various forms of "aliasing" - which is OK for painting (which might be viewed as "intensional, artistic, aliasing"), but doesn't necessarily lead to nice resamplings.
The sample image requirements and questions for the assignment have been added.
In the event that you did your work early (and didn't read this update until it was too late): If you turn in the assignment before Monday (e.g. it has a Sunday or earlier time stamp), you don't need to hand in the questions or sample images.
Feedback for the practice project was sent out recently to your CS email account. Unfortunately, the department's email server was having some issues at the time, so you may not have received the email. If you did not receive feedback, email Blayne and he will resend your email.
Are posted here
Since its burried below, the help session (for the imaging project, and any other questions you might have) is today (9/24) at 4:30pm in 1221.
Bring questions - I'll try to bring answers, but if no one asks anything, this will be over quickly.
According to the people at Wendt Library:
The book is on 2 hour reserve behind the circulation desk. (I confirmed that it is here on the shelf). The call number is T385 S434 2005. Students need to ask staff to retrieve the book for them.
If you do not have a copy of the book, and you need to borrow it for short amounts of time, Blayne has a copy in his office that you can stop by and borrow. Preferred times to stop by are during office hours, but feel free to stop by and see if he is around other times as well.
A discussion of how the assignments and projects are going to be organized this semester is here. None of this should be a surprise, but it codifies things a bit, and makes clear how we intend to do the grading.
Some clarifications have been made to the written homework.
I made some examples of what the various reconstruction kernels look like on sample images and put them on Main.Upsampling.
It was pointed out to me that the ways of dealing with convolution endpoints (as described in class today) isn't in the book. (lots of stuff isn't in the book).
And, my terminology isn't always consistent. So, I wrote an explanation here.
Simple example versions of the programs and some input and output pairs from them are available on AFS, and described at Assignments.ProgramImagingSamples.
There were some mistakes on the web pages (thanks for pointing that out - all should be fixed).
All assignments are due on Tuesdays (by the end of the day Tuesday - if its Wednesday morning, then its not Tuesday).
There is a bug in the OpenGL code for tutorial - the symptom is that it will make your image go blank after a while. We know what the problem is (and the code is needlessly complex).
We will post fixed code later (probably tonight).
The problem will be easy to explain once we've discussed OpenGL and transformations in class.
So, we give you your choice:
We'll have a hints session on C++ programming and the Imaging Programming Assignment on Wednesday, September 24th at 4:30 in room 1221.
The initial version of the Imaging Programming Assignment (I hestitate to call it a project is posted at ProgramImaging.
While there will inevitably be some clarifications (and some things we have explicitly said we'll post later - like the sample solutions and test data), the main parts of the assignment should not change.
The first written assignment (due 9/23) is here.
If you want to convert images formats (for example to get a TGA file if you have a PNG or JPG): most image editor/viewer programs can do this. IrfanView (which is installed on the CSL machines, and is free) can do it (open a file and use "SaveAs"). Or you can use PhotoShop.
I'm sorry if this wasn't clear, but:
For both parts, actually, the sample code is a complete (um, at least close to complete) and acceptable assignment. And it is acceptable (modulo providing proper attribution) to simply turn in our code, or to copy from it, or be inspired from it, or ...
For this assignment, the main thing is that you're able to get things to compile/build/... and understand what is required to read/write images and get an OpenGL window up on the screen. Soon, you'll be writing more significant programs, so knowing how to do these basic things will be useful.
If you're confused about monitor calibration and gamma, you're not alone!
You might notice that in lecture I said gamma was the exponent for the display ( L ~= i^g ). Often they say that the "gamma curve" is i^(1/g). The idea is that if we apply the gamma curve before the display, we get linearized intensity. (so L ~= ( (i^(1/g)) ^ g) = i)
If you want to learn more about it, there are tons of resources on the web. Some that I think are particularly good:
From the surveys, its clear that people would like C++ programming hints sessions, and that Monday (and Wednesday) afternoons are good times for them. So...
We will have a C++ help/hint session / tutorial on Monday, September 15th, at 4:45pm in room 1221 (same as class).
Bring questions - we'll have some things to say, but mainly we will discuss what you want to hear about it. If you are wondering about something, chances are, someone else will too.
I got the name of the algorithm wrong again, it is Floyd-Steinberg.
And with error diffusion, you do measure the error as between the goal (initial value plus the error diffused into it) and the threshold output. The wikipedia page is a nice explanation
Programming Assignment 1 is now available for you to work on and is due Tuesday, Sept. 16. Instructions are available here. If you want to setup Visual Studio to work at home, make sure to contact Blayne to borrow a DVD. You can get FlTk as described in a previous announcement. Just remember that the program must compile correctly on the CS machines, so make sure to leave yourself some time to make sure your programs work properly in the lab.
The version of FlTk we're using in the CS environment is 1.1.9 (the latest stable version). We have a pre-built version of it for you here. This is exactly what is in
If you use this on your own machine, we recommend putting it somewhere like
In class tomorrow, we'll see two different ideas of what a Pixel is. It turns out that this discussion has gone back from a long way: whether a pixel is an area or a point has been debated for a long time.
Dick Lyon (who was the director of the lab I worked at Apple) has a Computer History Museum talk called "Pixels and Me" where he explores the definition and history of the word Pixel. I've only watched the first few minutes so far, but this could be interesting (since Dick is always a really interesting guy).
Despite what the timetable says, CS559 will meet in 1221 CS, not over in Psychology. 1221 is a big room for a not-so-big class, but its a much better room than we were previously assigned.
Sometimes, 559 seems to scare people away.
We've tired to bring the workload more in line with other 500 level classes, so we have been getting fewer complaints. However:
The old "Should you be here" is a little out of date, and maybe overly scary.
I will be experimenting with placing important events on a Google Calendar (if you use such things). All the information will be here on the course web as well.
If you use google Calendar (or some other calendaring software), the calendar is
Please read over these things:
The RSS Feed for announcements is:
The RSS Feed for all page changes (probably more than you want to know) is: