https://github.com/doubleailes/crust-render
A simple toy ray tracer
https://github.com/doubleailes/crust-render
cook-torrance disney-principled-brdf mis path-tracing ray-tracing ray-tracing-in-one-weekend rust
Last synced: about 1 year ago
JSON representation
A simple toy ray tracer
- Host: GitHub
- URL: https://github.com/doubleailes/crust-render
- Owner: doubleailes
- License: mit
- Created: 2025-03-28T22:18:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-01T14:59:16.000Z (over 1 year ago)
- Last Synced: 2025-04-01T16:30:21.589Z (over 1 year ago)
- Topics: cook-torrance, disney-principled-brdf, mis, path-tracing, ray-tracing, ray-tracing-in-one-weekend, rust
- Language: Rust
- Homepage:
- Size: 2.89 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Crust Render
A toy, high-quality path tracer written in safe, modern Rust โ inspired by PBRT, `Ray Tracing in One Weekend`, and Autodesk Standard Surface.
Completely in a vibe coding mood.
## ๐ธ Preview

---
## โจ Features
- โ
**Physically-Based Path Tracing**
- Supports diffuse, metal, glass, Blinn-Phong, Cook-Torrance
- ๐ **Recursive Ray Scattering** with depth control
- ๐ก **Multiple Light Sources**
- Emissive materials
- Light sampling & MIS (Multiple Importance Sampling)
- โ๏ธ **Material System**
- Trait-based, easy to extend
- Microfacet GGX BRDF with Fresnel and geometry terms
- ๐ง **Importance Sampling**
- Supports BRDF- and light-based sampling
- โก **Adaptive Sampling**
- Early stop based on variance threshold
- ๐งช **Modular Design**
- Clean separation between renderer, integrator, materials, scene
- **Disney Principled Shader**
- A basic integration of the animation standard shader
- **Correlated Multi-Jittered (CMJ)**
- Use CMJ for camera and light rays
---
## ๐ Getting Started
### ๐ง Build and Run
```bash
cargo run --release -- --samples-per-pixel 200 --max-depth 50