Skip to content

Performance

Performance varies depending on factors such as:

  • computer specs and resource capacity
  • resolution
  • shader settings
  • how much of the screen is covered by blended seams.

I'll be preparing a demo soon so you can test it out on your own machine. The goal is to keep render overhead <1ms on modern hardware in most scenarios.

Time Complexity

Most of the compute time happens in the post process shader which calculates blending per pixel. Each pixel needs to sample nearby pixels to detect seams. If a seam is found, blending is calculated.

Cost scales linearly with the number of ray directions and logarithmically with the search radius. The refinement stage adds a small fixed cost.

  • Directions (NumDirs): doubles cost if doubled.
  • Radius (MaxRadius): increases cost slowly (~log2(MaxRadius)).
  • Refinement steps (BinaryRefineIters): small linear add.

Example

(NumDirs=8, MaxRadius=64, BinaryRefineIters=4) yield on the order of ~80 samples (~160 texture reads) per pixel in worst-case seam regions; most pixels do less work due to early exit.

Benchmarks

Coming soon.

Comments