https://github.com/cloudcodingspace/raytracer
A real-time raytracer written in C++
https://github.com/cloudcodingspace/raytracer
c cpp opengl opengl-core opengl46 raytracer raytracing raytracing-in-one-weekend software-raytracer
Last synced: 27 days ago
JSON representation
A real-time raytracer written in C++
- Host: GitHub
- URL: https://github.com/cloudcodingspace/raytracer
- Owner: CloudCodingSpace
- Created: 2024-09-16T12:14:41.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-03-31T12:22:09.000Z (2 months ago)
- Last Synced: 2025-03-31T13:37:35.380Z (2 months ago)
- Topics: c, cpp, opengl, opengl-core, opengl46, raytracer, raytracing, raytracing-in-one-weekend, software-raytracer
- Language: C++
- Homepage:
- Size: 38 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RayTracer
RayTracer, this project is about me (@CloudCodingSpace), creating a real-time raytracer pretty much from scratch with very less number of dependencies.
The prefferred language of choice is indeed C++. And the graphics API is OpenGL.## Build
First you need to clone this repository using this command on your terminal or powershell :-
git clone --recursive https://github.com/CloudCodingSpace/RayTracer
Then simply run these commands on your terminal :-
mkdir bin
cd bin
cmake ..
cmake --build . --parallelWhen you are finally done with **building** the project, then find your executable and run it.
When you run the executable, then it will open a window and render the scene in real-time.## Dependencies
This project uses a couple of dependencies. Namely :-
- GLM
- TinyOBJLoader
- ImGUI
- GLFW
- GLAD## Features
- Can render a hdri panorama/equirectangular image as a skybox
- Can select the hdri panorama/equirectangular image during runtime
- Can save the scene as an png image, found at output/img.png that is present in the same folder as the RayTracer executable.
- Can render multiple spheres
- Can add spheres during runtime
- Can add materials during runtime
- Can change the sphere & material properties during runtime through ImGui
- Can do some reflection and the number of bounces per ray can be controlled through the ImGui Settings panel
- The ImGui window can be dragged out of the parent window by the ImGui viewports feature
- Can serialize and deserialize the scene data in an scene.save file
- Can select the material type at runtime like Diffuse & Metallic## Screenshots



