In school, towards the end of my diploma, I was allowed to take a class outside my engineering field: computer graphics. This class, CS488, was a blast. I recall a warning during the first class indicating that the workload was somewhat intense, and that students have been known to take only that one class for a semester. This scared me a bit in the start, but it was a calculated risk since I already had a somewhat solid grip on graphics basics at that point and I mostly saw the class and required coursework as a fun and stimulating way to deepen my knowledge of fundamentals. It all worked out and in the end; my heaviest class that term was a cognitive psychology class, which by itself dwarfed the course load of all my other classes put together.
The second-last assignment in that class is to write a simple raytracer, using python to describe scenes which are thereafter rendered by a C/C++ back-end. Once the basic requirements are met - simple lighting, shadows, scene hierarchies, etc. are working - students are free to add three (or more) features of their own accord. I chose to add supersampling, reflections, and isosurface (blob) rendering using a simple solver. Here are a few sample images.
The course-required images are somewhat less... erotic:
The second-last assignment in that class is to write a simple raytracer, using python to describe scenes which are thereafter rendered by a C/C++ back-end. Once the basic requirements are met - simple lighting, shadows, scene hierarchies, etc. are working - students are free to add three (or more) features of their own accord. I chose to add supersampling, reflections, and isosurface (blob) rendering using a simple solver. Here are a few sample images.
The course-required images are somewhat less... erotic:
No comments:
Post a Comment