Enhanced Sphere Tracing
Date
2014Author
Keinert, Benjamin
Schäfer, Henry
Korndörfer, Johann
Ganse, Urs
Stamminger, Marc
Metadata
Show full item recordAbstract
In this paper we present several performance and quality enhancements to classical sphere tracing: First, we propose a safe, over-relaxation-based method for accelerating sphere tracing. Second, a method for dynamically preventing self-intersections upon converting signed distance bounds enables controlling precision and rendering performance. In addition, we present a method for significantly accelerating the sphere tracing intersection test for convex objects that are enclosed in convex bounding volumes. We also propose a screen-space metric for the retrieval of a good intersection point candidate, in case sphere tracing does not converge thus increasing rendering quality without sacrificing performance. Finally, discontinuity artifacts common in sphere tracing are reduced using a fixed-point iteration algorithm. We demonstrate complex scenes rendered in real-time with our method. The methods presented in this paper have more universal applicability beyond rendering procedurally generated scenes in real-time and can also be combined with path-tracing-based global illumination solutions.
BibTeX
@inproceedings {10.2312:stag.20141233,
booktitle = {Smart Tools and Apps for Graphics - Eurographics Italian Chapter Conference},
editor = {Andrea Giachetti},
title = {{Enhanced Sphere Tracing}},
author = {Keinert, Benjamin and Schäfer, Henry and Korndörfer, Johann and Ganse, Urs and Stamminger, Marc},
year = {2014},
publisher = {The Eurographics Association},
ISBN = {978-3-905674-72-9},
DOI = {10.2312/stag.20141233}
}
booktitle = {Smart Tools and Apps for Graphics - Eurographics Italian Chapter Conference},
editor = {Andrea Giachetti},
title = {{Enhanced Sphere Tracing}},
author = {Keinert, Benjamin and Schäfer, Henry and Korndörfer, Johann and Ganse, Urs and Stamminger, Marc},
year = {2014},
publisher = {The Eurographics Association},
ISBN = {978-3-905674-72-9},
DOI = {10.2312/stag.20141233}
}