Friday, April 29, 2016

Serious Time #68 The Birth of Photo Realistic Rendering

The earliest forms of CGI started in the the early 70's. It definitely wasn't perfect and took a lot of hard work. Through the many years though it has progressed more and more and continues to do so every day. How did this all start? With a lot of math, engineering, and computer science. This includes geometry, vector, 3-D coordinates, and matrices. The math and science combined is the way they make the algorithms for the computers.

These algorithms, in lamens terms, are how we get the computer to produce what we want. This is what gave birth to the first ways to render, rasterization and ray tracing. The main difference between rasterization and ray casting was that rasterization was object centric while ray casting was image centric. Rasterization uses rays that intersect with the camera which then projects the image onto a grid showing where the pixels go for the render. This method issues though like, visibility issues with objects overlapping and how to simulate shadows, reflection, refraction. All of this could be solved though through ray casting. Ray casting casts rays from the camera into the whole screen, one ray into each pixel in the grid, all of these rays would then be checked for intersections which if they had one would take the first of the two.

The problem with ray casting though was how much time it took as you had to check every ray for intersections. They solved this problem and the shadows, reflections, and refraction's by modifying this formula and naming it ray tracing. Ray tracing uses a combined use of different property rays to simulate shadows and light reflection, as well as refraction. Basically if it was a reflection ray it would bounce off of an object, if it was a shadow ray it would cast shadows based off of location and shape, and refraction which angles the ray through an object. All of these rays came from the light source that was in the shot of the room the objects were placed in.

As you may have already guessed though their was another issue with this way of doing things and that was the fact that it didn't look to realistic because this method only uses direct illumination, this means that light only reflects directly from the source, which is not realistic at all. Realistically the light should bounce off of everything in the given space, this was called indirect illumination. James Kajiya fixed this though with something he made called the "Rendering Equation" which was an algorithm for computers to produce indirect light. The algorithm was very long and complex though making it subject to change, the Monte Carlo integration was the first to try this. Throughout the years we also have improved rendering time significantly, this refers to Moore's Law. Moore's Law is the statement that the number of transistors in a dense integrated circuit doubles every two years. Blinns Law balances this out though stating that when technology advances rendering times remain constant. In lamens terms all together this means, the more machines are capable of the more we throw at them.

All in all I feel that CGI is an amazing tool that just shows what we can all accomplish when we put our minds to it. I do think that CGI is different from other art forms because although it can be done very well or very poorly, a lot of it is made from math and science which other art isn't. Whether you agree or not you have to admit that CGI is an amazing tool, created by pure imagination.

No comments:

Post a Comment