Archive for September, 2005

Sitting and talking

Wednesday, September 28th, 2005

As I’ve previously mentioned, I’m required to keep a reflective journal for a course that I’m currently taking. Of course, because I’ve been told to do it, I’ve not made any blog posts since. I seem to like to blog if it’s a voluntary activity, but I don’t like it if I’m told to keep a journal.

Anyway…let’s reflect. I attended my action learning group meeting today. I had done some preparation for it because I realise that even though I don’t like the format of the meetings I should be professional about it; prepare, contribute and learn. I’m not sure how much I learned, but I’ll give it some time.

My next job is to finish the learning pack that I’m working on. It’s on assessment which is something that I need to improve at. However, after reading the referenced chapters and websites I don’t think I’ve picked up anything that Des hasn’t ranted about. I seem to be able to pick up more from my collegues in a shorter space of time than from spending time reading.

So apart from not liking the format of the meetings (I periodically transition from feeling angry at being told to sit somewhere for several hours like a child to being really angry that I’m being put in some pseudo-therapy [unfortunatly not the uber-cool rock group Therapy?]) and not getting a high return on investement from the study packs it’s all going well :P

Smoother rotation

Wednesday, September 7th, 2005

Here’s a video featuring some smoother rotation (in 10 degree jumps) but with some scanline rendering artifacts. I’ll get rid of these, improve the scenegraph API and implement a proper pixel buffer object (rather than the direct int[] access it is now). It should be servicable for a while then.




It’s in Ogg Theora as usual so GNU/Linux users can play it out of the box. Windows and Mac users should have a look here for details about Ogg Theora support on their platform. Users of other platforms such as GNU/Hurd, FreeBSD, Solaris etc… are probably savvy enough to figure this one out themselves.

Blogging self censorship

Monday, September 5th, 2005

I find myself censoring my posts recently. This is probably because I’ve moved from a research position into one which requires me to teach and I don’t think it’s professional to tell my students what I got up to at the weekend (It was arranging a mortgage if you’re interested :) ). So instead of publishing (possibly libelous) opinions about my friends I’ll do something way more dangerous…

I’ve to keep a reflective diary of my teaching for the coming year. This is a requirement of a course that I’m taking at the moment. I’ve decided to keep it on my blog. And hey, if it dosn’t work I can always stop :P One thing I won’t be commenting on publically is one-to-one supervision duties I have. I’ll only be commenting on my own successes or failures.

In the coming year I have responsibility for the final year Computer Graphics Algorithms and Software Testing courses. I also have input into the second year Software Engineering course and will be assisting with the first year Java Programming course. The Computer Graphics Algorithms and Software Engineering courses are in the coming term, thus my planning for them is more advanced than for the Software Testing course.

I’m not a computer graphics person. I’ve never previously had an interest in the area, however a discussion with my professor over here quickly put me straight. He explained how computer graphics is on of the few areas of practical computer science where you get all of the classic computer science problems. Low level problems with bandwidth saturation to high-level problems like the fact that graphics pipelines are difficult to test. There are also a few probems that I saw when teaching computer graphics algorightms.

The first problem is that OpenGL does a lot of the work that I want to teach. It does all the scanline rendering and z-buffering in hardware, thus depriving students of the jucy details. The second is with the propritery nature of other graphics APIs such as the Sun Java3d API which require you to accept a restrictive licence to view the code. It’s fine for me to accept the licence, but I don’t want to force my students to view source code that could discount them from future employment. The third problem was that I have no experience in implementing graphics algorithms.

The solution to all three problems was to develop my own 3d scengraph and API for Java. The results of which are in my previous post, thought I hope to get up some prettier videos before the end of the week.

It’s been going slowly. Primarly because I eschewed conventional wisdom and decided not to pay much heed to other 3d API implementations. I wanted to generate an API from first principles in order to really learn “why?”. I think that’s been a success. For instance, I’ve learned that you can get away with simple matrix mathematics for most of a 3d renderer except for the lighting which requires vector mathematics. This mightn’t sound like deep knowledge but I hope it will help me to guide students who find certain types of math difficult. The failure (If I am to use binary classification) is that I don’t have all my class notes written yet. I will get this done in the next three weeks though. I also have to find someone more experienced than I to discuss assessment with.

I should add that my understanding of computer graphics has been immensely helped by three of Prof. Arnolds research students Craig, Karina and Tudor, who (generally, if I buy them coffee) don’t mind fielding my questions on the topic.

Watch me spin triangles

Friday, September 2nd, 2005

Heres a video of me spinning triangles.




The lighting model is primitive, but it works. And the method of displaying images on-screen is better left unsaid. There’s about a week of work to complete, but I think the renderer should be decent enough when finished.

Update:
If you are having a problem playing this Ogg Theora file, have a look here for details on software needed. Linux supports Ogg Theora out of the box. Windows users should install the Windows Media Player plugin and Mac users should install VLC (video lan client).