My thought repository
About me Projects

Testing wavefront ray tracing across Apple's M-series

2025-06-12

Books, articles, and blog posts tout the wavefront renderer architecture as a way to improve ray tracing performance on GPUs. How well does it perform in practice on M1, M2, and M3 chips? Should you write a wavefront renderer for your hobby project?

Read More

  • raytracing
  • metal

Pathtracing tidbits: integrating animated blue noise

2025-01-12


The method from the paper Using Blue Noise for Ray Traced Soft Shadows can be readily adapted to a path tracer to yield images with better clarity than white noise.

Read More

  • blue noise
  • raytracing

Embed data into C byte arrays at build time

2025-01-04

Set up a build workflow to effortlessly embed data into your executable at build time.

Read More

  • C
  • CMake

A quick look at Apple Silicon's hardware accelerated ray tracing performance

2024-09-01


A simple test case measures how much of a boost can be obtained with hardware accelerated raytracing on Apple Silicon.

Read More

  • raytracing
  • metal

Notes on C++ initialization

2023-11-16

A summary of the notes that I took to avoid shooting myself in the foot using C++ designated initializers and STL constructors.

Read More

  • cpp

GPU Pathtracer Devlog

2023-10-30


A devlog of my GPU pathtracer project, where I am writing a physically based pathtracer from scratch using WebGPU.

Read More

  • cpp
  • raytracing
  • webgpu

Weekend raytracing with wgpu, part 2

2023-05-27


This post focuses on making the raytracer discussed in part 1 much shinier. Notes on integrating a physically based sky model and textured material support are discussed next.

Read More

  • raytracing
  • webgpu

Weekend raytracing with wgpu, part 1

2023-05-07


A look at the most notable challenges in implementing Peter Shirley's Raytracing In One Weekend using wgpu and WGSL.

Read More

  • raytracing
  • webgpu

Using inverse transform sampling to generate random numbers in a given distribution

2023-05-05

In inverse transform sampling, the inverse cumulative distribution function is used to generate random numbers in a given distribution. But why does this work? And how can you use it to generate random numbers in a given distribution by drawing random numbers from any arbitrary distribution?

Read More

  • math

Quick and dirty image dithering

2022-03-06


Dithering is a fascinating and seemingly counter-intuitive technique, the effects of which are easily demonstrated using images. This post develops a simple way to dither images using just a few lines of Rust code.

Read More

  • rust
  • image
  • dithering
1 2 Next »
     

© 2025 Johann Muszynski