Advanced Raytracer application, developed in C++, that utilizes OpenMP for parallel computing to enhance performance. The project features global illumination, motion blur, depth of field, soft shadows and Phong Local Illumination.
This project incorporates OpenMP (Open Multi-Processing), a parallel programming model for shared-memory multiprocessor architectures, to achieve faster performance. By distributing computations across multiple CPU cores, the application can render complex scenes more quickly and efficiently.
A feature that adds cinematic qualities to the rendered scenes, the motion blur function simulates the photographic phenomenon where fast-moving objects appear blurred along the direction of relative motion.
By emulating how light interplays with objects within a scene, the global illumination feature provides richer and more lifelike visual outputs. It models the details of how light bounces around an environment and scatters in various directions, capturing the subtle nuances of natural light and shade.
This attribute allows for the simulation of the lens focus effect seen in real-world cameras. By adjusting the depth of field, users can emphasize specific subjects in the scene while artistically blurring other elements, creating a strikingly realistic and depth-perceptive visualization.
The Soft Shadows feature simulates the effect of shadows when light is obstructed by objects in the scene. The 'soft' refers to the non-uniform, irregular shape of the shadows, which contribute to the realistic rendering of scenes by simulating the scattering and diffraction of light.
The Phong Local Illumination model calculates the color of an object based on its diffuse, specular, and ambient color, as well as the light present in the scene. This feature contributes to more accurate and visually pleasing renderings by considering the local properties of the objects and the lighting conditions.
This project is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Read the full license here.
- Clone the repository:
git clone https://github.com/AmrHMorsy/Raytracer-.git
- Navigate to the project directory:
cd raytracer
- Create a build directory:
mkdir build
- Navigate to the build directory:
cd build
- Generate makefiles using cmake:
cmake ../
- compile using makefile:
make
- Run the program:
./raytracer <Model_Filepath>.json