https://github.com/angstrom-123/cpu-raytracing
Toy CPU path tracer
https://github.com/angstrom-123/cpu-raytracing
java maven path-tracing pathtracer pathtracing ray-tracing raytracer raytracing render renderer rendering rendering-engine
Last synced: about 2 months ago
JSON representation
Toy CPU path tracer
- Host: GitHub
- URL: https://github.com/angstrom-123/cpu-raytracing
- Owner: angstrom-123
- Created: 2024-11-13T13:33:05.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-12-05T15:54:59.000Z (5 months ago)
- Last Synced: 2025-03-28T13:13:56.189Z (about 2 months ago)
- Topics: java, maven, path-tracing, pathtracer, pathtracing, ray-tracing, raytracer, raytracing, render, renderer, rendering, rendering-engine
- Language: Java
- Homepage:
- Size: 9.44 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CPU Raytracing
Toy CPU path tracer written entirely in Java.## Features
- Physically based path tracing
- BVH optimisation using axis-aligned bounding boxes
- Support for Lambertian diffuse, metallic, glass, and emissive materials
- .obj file format model importing (model and normals only)
- Texture support
- Custom image texture support for spheres## Running
Requires an installation of at least JDK-21.By default, rendered images will attempt to save to a "renders" folder in the current or nearby directory. If this is not found, the default location is the cwd.
## Config
**Multithreading:**
Preliminary tests have shown that, on powerful computers, thread count should be equal to the number of high-power CPU cores (such as Intel's "performance cores"). Weaker systems and laptops could experience best performance with just one thread.**Tiling:**
Tile width width should be left at auto for fastest results as this optimizes the cache. Tile height can be reduced to maintain a higher average thread count throughout the render (as when one tile is finished, the thread can be reassigned).
## Demos




## References
"Ray tracing in one weekend" and "Ray tracing the next week" : https://raytracing.github.io/