Skip to content

hexhowells/GoTracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoTracer - Volumetric Path Tracing in Go

GoTracer is a Go implimentation of the ray tracer in Ray Tracing in One Weekend.

See /images for example images rendered using the ray tracer.

example.go uses the package pb to display a progress bar but isn't required for the raytracer.

Example Render Showcasing the Ray Tracer's Features

Features / Notes

  • Includes multiple surfaces (lambertian, metallic, dielectric, isotropic)
  • Includes emissive materials
  • Can output in PPM or PNG format
  • Supports Spheres, Rectangles, and Boxes
  • Supports instance rotation around the Y axis (shouldn't be hard to impliment rotation around X and Z)
  • Adjustable depth of field and viewing angle
  • Has ambient occlusion, soft shadows, colour bleeding, global illumination
  • Anti-Aliasing by taking multiple samples per pixel
  • Images are gamma corrected before being saved

Future Additions / Improvements

  • Support for cylinders and triangle meshes
  • Motion blur
  • Procedural textures and image texture mapping
  • Importance sampling
  • Bidirectional path tracing
  • Add parallelism via goroutines

About

Volumetric Path Tracing in Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages