https://github.com/coderjoshdk/ray-tracing
A homemade raytracing engine. The purpose of this project is for experimentation and not production use of any kind. Explore and learn the ideas of raytracing
https://github.com/coderjoshdk/ray-tracing
raytracing
Last synced: 8 months ago
JSON representation
A homemade raytracing engine. The purpose of this project is for experimentation and not production use of any kind. Explore and learn the ideas of raytracing
- Host: GitHub
- URL: https://github.com/coderjoshdk/ray-tracing
- Owner: CoderJoshDK
- Created: 2021-12-24T23:12:21.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-12-29T15:33:12.000Z (over 4 years ago)
- Last Synced: 2025-07-21T20:15:36.155Z (9 months ago)
- Topics: raytracing
- Language: C++
- Homepage:
- Size: 6.53 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ray Tracing
[](https://en.cppreference.com/w/cpp/17)

---
## Impilmented Topics
- Objects:
- Sphere
- Box
- Rectangles (axis-aligned)
- Materials:
- Diffuse (lambertian)
- Metal
- Dielectrics
- Textures
- Perlin Noise
- Image Mapping
- Diffuse Light
- Camera
- Orientation
- Defocus blur (depth of field)
- Motion Blur
- Optimization
- Bounding Volume Hierarchy (BVH)
- Multithreading
## Output
Output is in .ppm format. Right now, to get an output image, run build. The exe will output `image.ppm`.
To change the quality of the image, change `samples_per_pixel` or `image_width`.
Output from *random_scene*

It is intresting to note that glass spheres do not cast shadows. This is physically correct.
### To-Do
- ***Lights***
- Rectangles
- Volumes
----------
