CS440 - Computer Graphics

Project II

By:

Our Concept

Our Concept

Title: Higher Studies

We built our scene keeping in mind the recent astrology moment where Venus, Jupiter and Saturn were visible to the naked eye, Pluto was also visible but not to the naked eye as it was too dim. We rendered the planets using the Habib Yohsin colors and was a very wholesome moment where majority of the Habib community came together to observe the sky.

1011252 Primitives used

Our Code

The Scene

We built the scene with a combination of Meshes and Spheres to depict outer space. We employed the use of Reflective Material and Matte Materials to render the planets and the rocketship.

Acceleration Structures

Acceleration Structures

In our code, we have implemented BVH as an acceleration structure. We compared the rendering times for images using large number of spheres. The analysis was performed by rendering images with and without using BVH.

By commenting Line 20 in raytracer.cpp the acceleration structure will not run, whereas when it is not commented the acceleration structure will run by default.

Rendering Times With an Acceleration Structure

As compared to renders without BVH, a significant speedup was observed in the rendering times.

Rendering times Without an Acceleration Structure

We can see that both for low and high resolutions, when the number of primitives are higher, the program takes too long to render (we lost our patience at 10000) as compared to the fast renderings using BVH.

With Acceleration

100 Spheres Resolution (480x480)

Acceleration Structure

1000 Spheres Resolution (480x480)

Acceleration Structure

10000 Spheres Resolution (480x480)

Acceleration Structure

100 Spheres Resolution (1980x1980)

Acceleration Structure

1000 Spheres Resolution (1980x1980)

Acceleration Structure

10000 Spheres Resolution (1980x1980)

Acceleration Structure

Without Acceleration

100 Spheres Resolution (480x480)

Acceleration Structure

1000 Spheres Resolution (480x480)

Acceleration Structure

10000 Spheres Resolution (480x480)

Acceleration Structure

100 Spheres Resolution (1980x1980)

Acceleration Structure

1000 Spheres Resolution (1980x1980)

Acceleration Structure

10000 Spheres Resolution (1980x1980)

Acceleration Structure

Code Features

Over the course of the semester we learnt multiple techniques and ways to develop our own raytracer to generate high-quality images.

Bonus Functionalities

Other than the standard implementation, we also incorporated other classes to render more realistic and nicer images.

Projects

Image Features

Renders for Anti-Aliased Images

Here are our renders for Anti-Aliased Images



Other Renders

Build

Build

We have multiple implementations of our World::Build functions to generate images

  • build_times.cpp: To compare times using BVH
  • build_reflective.cpp: For Reflective Image with recursive depth 12
  • build_scene.cpp: Our final Scene
  • buildChapter14.cpp: For Anti Aliasing
  • buildPly.cpp: For loading meshes
  • build_directShadows.cpp: Renders directional shadows
  • build_pointShadows.cpp: Renders point shadows

Acknowledgements

  • https://free3d.com/3d-model/rocket-781772.html

  • Kevin Suffern - RayTracing from the Ground Up

  • https://github.com/VertexC/glass-chess

  • Colorlib Themes for Website

  • Team-RayTracer

Contact

Our Team

Anisa Aisha Ahmed

CS 2021

Bilal Hoda

CS 2020

Gulraiz Askari

CS 2020

Kunza Rizvi

CS 2021