Skip to content

clark91/Software-Ray-Tracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Software Ray Tracer (TinyRayTracer-based)

This repository is a learning project: a software (CPU) ray tracer built by following and adapting ideas from tinyraytracer. It’s not meant to be a polished library or “product”—it’s a sandbox for understanding how ray tracing works end-to-end (rays, intersections, shading, reflections, etc.) by implementing it yourself.

If you’re looking for a clean, reusable renderer API, you probably want the original tinyraytracer (or a more complete renderer). If you want something that’s easy to modify while you learn, this repo is the point.


What this is / isn’t

This is:

  • A personal learning/experimentation ray tracer
  • Code-first scene setup (edit source, recompile, render)
  • A place to try out features incrementally (materials, lights, recursion depth, etc.)

This is not:

  • A stable rendering engine
  • A maintained package with a public API
  • A benchmark-optimized implementation

Credits / Inspiration

This project is based on the approach and concepts from:

Any mistakes, deviations, or half-finished experiments are mine.


How to use this repo (edit the renderer main)

There isn’t a “proper” runtime interface. The intended workflow is:

  1. Open the renderer source file (the one that contains main) in the renderer directory.
  2. Edit the main function to change:
    • scene objects and materials
    • light positions/colors/intensity (if applicable)
    • camera position / look-at / FOV
    • resolution and render quality settings
    • output filename
  3. Rebuild and run to produce a new render.

In other words: to use it, you modify main directly.

Typical knobs you’ll change in main

Depending on what you’ve implemented so far, you’ll usually find settings for:

  • Image
    • width / height
    • samples per pixel (if you added sampling)
    • max recursion depth / bounces
  • Camera
    • position (eye)
    • target (look-at)
    • FOV
  • Scene
    • primitives (often spheres in tinyraytracer-style setups)
    • materials (diffuse / reflective / refractive)
    • light sources
  • Output
    • file path + format (often .ppm initially)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages