https://github.com/xsn34kzx/raytracing-implementations
https://github.com/xsn34kzx/raytracing-implementations
cli cpp java ray-tracing ray-tracing-in-one-weekend raytracer
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/xsn34kzx/raytracing-implementations
- Owner: xsn34kzx
- License: agpl-3.0
- Created: 2023-11-25T03:51:29.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-27T21:59:00.000Z (about 2 years ago)
- Last Synced: 2024-05-28T07:57:02.308Z (about 2 years ago)
- Topics: cli, cpp, java, ray-tracing, ray-tracing-in-one-weekend, raytracer
- Language: C++
- Homepage:
- Size: 109 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Project Description
Stemming from a Computer Graphics class assignment using Peter Shirley's
*Ray Tracing in One Weekend* (Version 1.54 of the book specifically), this repo
aims to expand the functionality and optimization of the original by rewriting
my original class submission from the ground up. In addition to rewriting the
project in its original language of choice, C++, the repo also intends to host
several different implementations written in other languages as a grounds for
learning or improving knowledge on a given language in addition to performance
and syntax comparisons.
The project operates under the GNU Affero General Public License. Full details
within ``LICENSE``.
# Usage
The C++ portion of the project uses CMake (Version 3.22 >= required), so its
Makefile can be generated normally. After doing so, it can be compiled with
``make``.
The program can be used to render a PPM file when provided the
desired width, height, and file name:
```
raytrace [width] [height] [desired filename...]
```
Note that ``make clean-img`` exists to clear all PPM files from the ``img``
folder generated post-build.
The Java portion of the project uses Gradle (Version 8.7 >= required) under the
``application`` plugin. As such, all ``application`` commands can be used, such
as ``gradle run`` and ``gradle build``.
# Current Goal(s)
- Finish C++ rewrite with new features, improved syntax, and writing conventions
- [ ] Add multithreading
- [ ] Continue with the book series after "One Weekend" (OPTIONAL)
- Write Rust implementation with parity to the finished C++ implementation
# Credit
- Shirley, Peter et al. [Ray Tracing in One Weekend][raytracing-git]
[raytracing-git]: https://github.com/RayTracing/raytracing.github.io