Skip to content

xsn34kzx/raytracing-implementations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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