Analysis of Super-Sampling Methods

Ray Tracing


The Problem

  1. How to reconstruct a high quality image with:

a.     the least amount of samples per pixel

b.     the least amount of resources

                    while preserving the image quality without introduction of artifacts such as jagged edges

                    and/or Moire patterns, etc..



References

  1. Ray Tracing from the Ground Up, Kevin Suffern, Selective and Adaptive Supersampling for Real-Time Ray Tracing.
  2. Ray Tracing With Adaptive Supersampling in Object Space, http://www.cs.uaf.edu/~genetti/Research/Papers/GI93/GI.html
  3. Study of Supersampling Methods for Computer Graphics Hardware Antialiasing - Michael E. Goss and Kevin Wu, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.5741&rep=rep1&type=pd
  4. A Family of Inexpensive Sampling Schemes – Jon Hasselgren, Tomas Akenine Moller, Samuli Laine, http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.106.3161
  5. Super-sampling Anti-aliasing Analyzed, http://www.x86-secret.com/articles/divers/v5-6000/datasheets/FSAA.pdf



Sampling Methods/Patterns

  1. Grid
  2. Rotated Grid
  3. Jittered
  4. N-Rooks
  5. Multi-Jittered

 

Discussion

Removing aliases can be done using these sampling patterns.  With higher number of samples per pixel the jagged edges are much smaller and therefore, almost invisible to the human eye.  However, higher quality comes with a cost of longer runtime as each sample takes more samples per pixel.  Hopefully, we can make the runtime shorter by applying adaptive strategy.  Unfortunately, we ran out of time to implement correctly and were not able to see the expected results.

 

2 Samples - Multi-Threaded

Grid with 4 samples – 2.756 seconds (visible Moire Pattern)

Rotated Grid with 4 samples – 2.674 seconds (visible Moire Pattern)

Jitter with 4 samples – 2.583 seconds (visible Moire Pattern)

Random with 2 samples – 2.631 (jagged edges visible)

Random with 4 samples  - 3.001 seconds (jagged edges visible)

NRooks with 4 samples – 2.660 seconds ( a bit of jagged edges)

Multi-Jitter with 8 pixels – 9.263 (great but expensive)

3 samples per pixel – Multi-Threaded – No Filter

GRID – 5.240 (visible Moire Pattern)

Rotated Grid – 5.141  (visible Moire Pattern)

Jitter – 5.311

NRooks – 5.272 (a bit of Jagged edges)

Multi-Jitter – 42.984 (good but expensive)

Single Thread

 

 

 

 

 

 

Sample

Random

Grid

Jittered

RG

Multi-Jettered

Nrooks

Box Filter

 

 

 

 

 

 

2

5.112

7.436

7.253

7.413

22.093

7.368

3

6.197

13.069

13.377

13.377

98.456

13.391

4

7.36

21.416

21.603

21.452

296.823

21.449

Guassian

 

 

 

 

 

 

2

4.65

7.017

7.452

7.32

24.299

7.22

3

5.834

14.184

14.354

14.283

115.238

14.563

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Multi-Thread (no filtrer)

 

 

 

 

 

 

Sample

Random

Grid

Jittered

RG

Multi-Jettered

Nrooks

2

2.631

2.756

2.583

2.675

9.263

2.66

3

2.422

5.29

9.311

5.142

42.984

5.272

9

5.564