The aim of the project is to create a simple Ray Tracing application from scratch.
Clone the repo:
git clone https://github.com/JaytidaA/SRA-Ray_Tracer_from_Scratch
To run the main application program just run the Makefile
program:
make
If you have the prime-run
program installed on your system and an NVIDIA graphics card then run the following program:
make prime-run
- C++
- GLSL
- GLFW - Graphics Library Framework (GLFW) allows users to create and manage OpenGL windows, while handling keyboard, mouse and joystick inputs. GLFW and FreeGLUT are alternatives to the same functions.
- GLEW - GLEW (OpenGL Extension Wrangler Library) is a cross-platform C/C++ extension loading library that provides an effcient mechanism to determine which extensions are supported on the platform.
- GLM - GLM is a C++ mathematics library for graphics software based on the OpenGL Shading Library(GLSL) specification. We used the GLM library to provide animations to the shapes we rendered using Modern OpenGL. GLM library provides us with matrices and vectors which can be passed to the draw call, and refresh the indices of the shapes rendered, resulting in motion.
- IMGUI - Immediate Mode Graphical User Interface is a popular library used primarily in C++ for creating graphical user interfaces (GUIs) in applications. It's particularly popular in game development, tools, and applications where performance and ease of use are critical.
Rendering spheres of different materials:
Rendering a cylinder:
Rendering cubes:
Implementing GUI on the cylinder:
- SRA VJTI.
- Documentation for OpenGL
- Project Report.
- The Cherno's OpenGL Tutorial
- Referred this to implement OpenGL functions and use GLM
- Ray Tracing in One Weekend
- Special thanks to our mentors Anish Mahadevan for guiding us through the Eklavya program.
- Special thanks to Yan Chernikov, Joey de Vries and Peter Shirley as well for their amazing projects which help made this one easier.