When the concept of the rendering competition was announced, I have no idea what to present for the competition.
After surfing the Internet for hours, amused by the content and thrilled by the pace, I felt like I wanted to animate a movie but looking back at reality I realised, I
need a good ray tracer to at least render a minimalistic scene, such is the complexity of the domain. So, I thought of making something that is both appealing and artistic. What more than an F1 race car would be appealing and artistic. There comes the idea of presenting an F1 car in a Gallery!!!! Now I incrementally built the scene starting with the F1 car, then a colourful vibrant platform, then a cool interior. Now comes the lighting , to make the scene visually appealing. To replicate the gallery effect used a mild coloured image texture on to the glossy wall surface and an abstract image texture onto the floor which is lit from point light source from the bottom. Am I missing something here?? Yes, ofcourse, the people who are fascinated to have a look at this beast which is soon gonna unleash its power.
Once the idea was concrete, the next step is to bring the idea into reality. Blender was used to model the scene i.e.,
arranging the objects in a 3-D world. While modeling, I observed that the number of primitives was huge (roughly around 400k) so tried to reduce the count and
successfully brought it to 40k. Upon successful modeling in the blender, now need to map the scene into a 2-D space using the ray tracer
(which is built incrementally throughout the semester). The challenge here is to get the correct blender coordinates,
which were computed based on some python scripts and basic linear algebra. The total scene description was given in main/a_rcScene.cpp
In order for such a huge number of primitives to be loaded as well as computing intersections is computationally expensive.
So, SAH BVH was used to speed up the process.
Used Phong, Lambertian, and combined materials to achieve realistic impressions on the surface of car.
Applied Bump mapping to the platform on which the car is placed.
Parallelization was necessary to efficiently utilize CPU resources to speed up rendering. Used openMP library for this.
The scene consists of 3 point light sources, 1 spot light on top of the car and one area light to give soft shadows.
Used DOF camera to get the bokeh effect of focusing only the car while blurring the background people and wall.
Sampling was done with 200 SPP to minimise visual noise.
Used Smooth triangles to smoothen the rough edges.
The objects which couldn't make it to the final scene. I used a mirror material object on the ceiling and tried to render from a particular position where the camera captures the side view and the mirror on the ceiling captures the top view.