mkeeter / rayray

A tiny GPU raytracer, using Zig and WebGPU

Home Page:https://mattkeeter.com/projects/rayray

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

rayray

A tiny GPU raytracer!

(more details on the project homepage)

Cornell Box

Ray tracing in one weekend

Features

  • Diffuse, metal, and glass materials
  • The only three shapes that matter:
    • Spheres
    • Planes (both infinite and finite)
    • Cylinders (both infinite and capped)
  • Any shape can be a light!
  • Antialiasing with sub-pixel sampling
  • Will crash your entire computer if you render too many rays per frame (thanks, GPU drivers)

Implementation

Project status

Project unsupported

This is a personal / toy project, and I don't plan to support it on anything other than my laptop (macOS 10.13, zig-macos-x86_64-0.8.0-dev.1125, and wgpu-native built from source).

I'm unlikely to fix any issues, although I will optimistically merge small-to-medium PRs that fix bugs or add support for more platforms.

That being said, I'm generally friendly, so feel free to open issues and ask questions; just don't set your expectations too high!

If you'd like to add major features, please fork the project; I'd be happy to link to any forks which achieve critical momemtum!

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

A tiny GPU raytracer, using Zig and WebGPU

https://mattkeeter.com/projects/rayray


Languages

Language:Zig 91.1%Language:C++ 8.1%Language:GLSL 0.9%