Skip to content

cam0studios/raytracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cam0studios/raytracer

A fairly simple raytracer made with TypeScript and WebGPU

Features

  • Browser and terminal rendering
  • Lambertian and dielectric materials
  • Textures with different interpolation modes
  • GPU acceleration
  • Optimized with a bounding volume hierarchy

Example

Showcasing Lambertian and dielectric materials, as well as an interpolated texture

An example render

Usage

  1. Clone the repository
  2. Run bun install
  3. Either:
    • Run bun . <options...> to render from the terminal and output to dist/output.png
    • Run bun run dev and open port 8000 in a browser.

Parameters

  • Size: horizontal and vertical resolution of the image
    • Terminal: -s <number>
    • Browser: ?s=<number>, ?size=<number>, ?resolution=<number>, or ?res=<number>
  • Rays per frame: number of rays to send out per pixel per frame
    • Terminal: -r <number>
    • Browser: ?r=<number> or ?rays=<number>
  • Bounces: number of bounces each ray makes before stopping
    • Terminal: -b <number>
    • Browser: ?b=<number> or ?bounces=<number>
  • Stop time: minutes until the rendering stops
    • Terminal: -t <number>
    • Browser: ?t=<number> or ?stop=<number>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published