Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

484 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Izpi

Unit Tests Ask DeepWiki

A path tracer that started life as a Golang implementation of Peter Shirley's Raytracing books. It has since grown in scope and gained more features that were not part of the original version.

Requirements

  • Go 1.26 or later
  • For optimal BVH4 performance, build with GOEXPERIMENT=simd to enable SIMD intrinsics

Goals

  • Have fun.
  • Learn about advanced computer graphics topics and put them to practice.
  • Create a well-written and robust renderer that is usable with real world scene workloads.
  • Integrate with DCC tools.
  • Support professional VFX flows.

Non-goals

  • Write the most performant path tracer possible.
  • Build a GPU-based path tracer.

Roadmap

  • Support for PBR materials.
  • Distributed Rendering.
  • Spectral Sampler to accurately simulate dispersion.
  • Nested dielectrics.
  • Physically correct light sources library.
  • Firefly rejection.
  • BVH traversal performance improvements.
  • ACEScg workflow support.
  • MaterialX support.
  • OpenSubdiv support.
  • OpenUSD support.
  • Implement a Hydra render delegate.
  • Adaptive sampling.
  • Implement Bidirectional path tracing.
  • Materials library.
  • Water material.
  • Sky simulation with day and night support.
  • Scene conversion tool by implementing Go bindings for Open Asset Import Library.
  • Implement Metropolis light transport.

Features

Gallery

The Stanford dragon

The Stanford dragon in a Cornell box

A demonstration of the effect of displacement mapping on a surface using Bricks078 from ambientCG.com, licensed under CC0 1.0 Universal.

Displacement mapping in a Cornell box

A Cornell box showcasing various PBR materials from Free PBR.

Different PBR materials in a  Cornell box

A demonstration of the dispersion phenomenon calculated by the spectral sampler.

Cornell Box with transparent glass spheres

About

A path tracer implemented in Golang.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages