nishantb15 / Ray-Tracer-Part-2-BVH-and-Mesh

This ray tracer builds from my previous ray tracer (https://github.com/nishantb15/Ray-Tracer---Part-1) which implemented simple shapes, hard shadows, Phong Reflection from a point light source, Multi-Jittered Sampling using n-rooks strategy (Anti-aliasing) and Orthographic and Perspective projection with a moveable camera. This ray tracer adds a Bounding Volume Hierarchy (BVH) which is an accelerated structure, in this case, used to generate an image containing 100,000 spheres which would take days to render without a BVH. More information about the BVH is contained in the BVHTable.pdf file. Support is also included to read a .obj file and import a triangular mesh into the scene. The mesh can then be shaded using per-vertex normals as opposed to per-face (1 normal per face). The pictures generated using BVH are generated using 1 for the number of samples in multi-jittered sampling (essentially no anti-aliasing) and no shadows to save cost. The purpose of this project was to test the efficiency of the BVH in generating an enormous amount of spheres and triangles. Part 3 Can be found at: https://github.com/nishantb15/Ray-Tracer-Part-3-Reflection-Refraction-And-Area-Lights

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

About

This ray tracer builds from my previous ray tracer (https://github.com/nishantb15/Ray-Tracer---Part-1) which implemented simple shapes, hard shadows, Phong Reflection from a point light source, Multi-Jittered Sampling using n-rooks strategy (Anti-aliasing) and Orthographic and Perspective projection with a moveable camera. This ray tracer adds a Bounding Volume Hierarchy (BVH) which is an accelerated structure, in this case, used to generate an image containing 100,000 spheres which would take days to render without a BVH. More information about the BVH is contained in the BVHTable.pdf file. Support is also included to read a .obj file and import a triangular mesh into the scene. The mesh can then be shaded using per-vertex normals as opposed to per-face (1 normal per face). The pictures generated using BVH are generated using 1 for the number of samples in multi-jittered sampling (essentially no anti-aliasing) and no shadows to save cost. The purpose of this project was to test the efficiency of the BVH in generating an enormous amount of spheres and triangles. Part 3 Can be found at: https://github.com/nishantb15/Ray-Tracer-Part-3-Reflection-Refraction-And-Area-Lights


Languages

Language:C++ 100.0%