Saturday, January 21, 2012

Shaders and Homework Assignments

I've also decided to split up my blog posts into two separate blog posts per week, one for Computer Graphics and one for Game Design. Makes it easier that way.

Intermediate Computer Graphics - INFR 2350

So last week I said that my mind was blown when I learnt about shaders. Man, shaders are pretty cool. I spent the last week playing around with shaders trying to get my homework assignments done, and they can actually do some pretty sick things.


Overall though, shaders are really cool. I ended up finishing two of the homework questions for the week, so I have a pretty solid start, although I really want to be even higher than I am now. I learned how to color, texture and move objects using shaders. Actually now that I think about it, that's pretty much all there is with shaders isn't it? Pretty much just the manipulation of colors and position. Obviously there are harder and more complex programs, but at the end of the day, it's pretty cool how all we're doing is just modifying two values.

I was pretty surprised as to how easy it was to transition and program in Cg. Makes sense though seeing how Cg was designed to derive from C and to be as easy to use as possible. I found that actually coding in Cg wasn't the hard part; getting the shader program to work in my regular C++ program was such a pain. Took me forever to get parameters to work, and even now it's just like ugh.

Yes, I have problems, displacement-map-troll-face.

As shown above, I managed to get displacement maps working. I think I'm starting to understand the power of images. They can store so much information and you can actually do so much with them if you know how to use it. Really gets me thinking of cool things that can be done. Granted I'm still pretty terrible with implementation, but it's still pretty cool.

Gonna try to attempt some of the harder homework questions over the next two weeks. See how much I can actually get done. I'm actually pretty excited to see what I end up accomplishing.


I know that a lot of people have issues and complaints with the homework questions. I'm not sure who actually reads these blogs, but I kinda wanna just state my opinion on them too. I know that I'm probably in the group of students that aren't going to be majorly affected by the system change, but still. Is the change justified? Yea, it totally is. I mean come on, there were 16 people that could write the final for Animation last semester the week before the exam. It's so obvious that most, if not all of the 70 or so people that actually managed to get their points that week probably didn't do all their work themselves.

That said, I feel like the system is too biased to people who actually get the content faster or read ahead. I mean, people (including myself) were getting questions done before the TA even taught us how to set up Cg. That would be fine and all if it wasn't for this fancy equation here.


I mean it totally makes sense. People should be rewarded for doing their questions first, and naturally the more people that have it done, the more likely that the answers will be shared around the class. It solves a lot of the problems that came up in Animation, yet at the same time ends up creating new problems as well. But this system doesn't even reward people for doing it first, it's just an illusion that we're being rewarded since we're just getting the full experience value, we're not getting an extra bonus for doing it first.

The people that are slower programmers get screwed over so hard. I mean so hard. Like I said, I already had some questions done, but I'm still in competition with the other people that decided to work on the questions too. This competition sucks since I only got two points for one question, but at the same time, it sucks even more for the people that haven't gotten any questions done since A) the easy questions are all done, and B) the somewhat easy questions don't even give full points for their questions. It's going to make getting to 65 harder for everyone.

The current system deals with essentially punishing everyone. Honestly, if I were to design this system, I would change it so that there would be both rewards and punishments. That way theres more of a balance. The way I would do it is:

I hope I didn't make any errors. That would be embarrassing.

In essence, the way I would do it is to reward the first person to do a question by giving him an additional 20% experience for the question, and the following four people would get the full experience value. After that, every question is only worth 60% of their original value. This would reward people for getting their homework questions done early (and first) while punishing people who decide to slack off and do it last minute. I feel like this would be a better compromise since although work sharing would still exist, people would need to do a lot more questions to get the points needed while not completing shutting down those who want to do legitimate work, but are just slow at it.

Of course, the current system works too. I'm a bigger fan of smaller classrooms anyways.


  1. Nice Gary! I've made some progress to, also I really like your idea for the experience breakdown, it would reward people like us :p

  2. That marking system for animation is just plain stupid. Why punish a students mark for not handing an assignment in fast enough. Some people just can't program at a fast rate, why put the anxiety and stress on a student like that I just don't understand. What this causes is students not learning but just trying there best to do it as fast as they can to get good marks. It just doesn't male sense, you go to school to learn and gain knowledge, personally I think this does not help students gain those aspects of going to school to get a good education but takes it away from that. It cruel punishment for students and is not right.