I’ll probably be up late tonight working on my final homework assignment! And then… final exams. Blagh.
The homework basically involves programming a ray tracer. The professor actually provided a good chunk of the code, but we have to edit it and add on to it by programming it to antialias the final image with adaptive ray tracing. Allow me to explain:
You see, ray tracing involves creating an image by sending off “rays” of light. Each ray sent represents a pixel on the screen, so basically all you have to determine is a pixel’s color. When you send off a ray, you basically have to trace its path to where it intersects with something, if anything. Then, if you want some reflections, you trace where that ray bounces to and what it intersects with next. In the real world, rays can bounce off objects countless times, but in the computer world, since the computer has to compute it all, you’ll have to set a limit.
Just plain ray tracing pixel by pixel will give very jagged edges on objects because the process is very quantized. That is, you’re only sending off rays at discrete distances from one another. But jagged edges look artificial to us, so adaptive ray tracing solves this by firing off more than one ray for certain pixels. If the final colors between two rays are very different, you fire off some more arrays between them and basically change the shade of the pixel. This smooths the edges.
This is of course hardly anything new. While computers have gotten faster, most ray tracing graphics still must be prerendered, no realtime graphics here! These ray tracing ideas have been in practice since before I was born… some principles in computer science don’t vanish quickly…
Sorry, I had little else to blog about… I’ll post screen shots of my wonderful work tomorrow. Maybe.
0 Comments