lorycontixd/RaytracingAlgorithm

Created Jul 25, 2022 · View the lorycontixd/RaytracingAlgorithm repository page

Nim package for rendering 3D scenes and producing photorealistic images.

Want this for your repo?

Render a free sample of any GitHub repo in seconds.

Visualize your own →

Contributors

6

Lines of Code

1,947

From

Mar 9, 2022

To

Jul 16, 2022

About lorycontixd/RaytracingAlgorithm

RaytracingAlgorithm is a Nim package designed to render photorealistic 3D images using raytracing algorithms. Users define scenes through a custom text-based format, and the package processes them to generate high-quality renders. The tool supports both high dynamic range output in PFM format and standard image formats like PNG and JPEG, making it suitable for both professional rendering work and casual visualization.

The package provides a command-line interface for rendering scenes as well as for converting between image formats. It includes tone mapping and gamma correction features for converting HDR images to displayable formats. The project includes documentation, tutorials, and an API reference to help users create their first scenes, ranging from simple multi-object scenes to animations with moving elements.

The implementation relies on several Nim libraries including SimplePNG for image output, Cligen for command-line argument handling, and Stacks for data structure support. The project acknowledges several areas for future development, including optimization techniques like KD-Trees, GPU acceleration via CUDA, advanced rendering features such as area lights and depth of field, and additional material types including refractive BRDFs. Currently, there are known limitations with triangle mesh rendering that remain unresolved.

Share this video