Texture Level of Detail Strategies for Real-Time Ray Tracing
Ray Tracing Gems
In collaboration with NVIDIA Research this chapter is featured in the upcoming Ray Tracing Gems book, edited by Eric Haines and Tomas Akenine-Möller.
Unlike rasterization, where one can rely on pixel quad partial derivatives, an alternative approach must be taken for filtered texturing during ray tracing. We describe two methods for computing texture level of detail for ray tracing. The first approach uses ray differentials, which is a general solution that gives high-quality results. It is rather expensive in terms of computations and ray storage, however. The second method builds on ray cone tracing and uses a single trilinear lookup, a small amount of ray storage, and fewer computations than ray differentials. We explain how ray differentials can be implemented within DirectX Raytracing (DXR) and how to combine them with a G-buffer pass for primary visibility. We present a new method to compute barycentric differentials. In addition, we give previously unpublished details about ray cones and provide a thorough comparison with bilinearly filtered mip level 0, which we consider as a base method.
Tomas Akenine-Möller (NVIDIA), Jim Nilsson (NVIDIA), Magnus Andersson (NVIDIA), Colin Barré-Brisebois (SEED), Robert Toth (NVIDIA), Tero Karras (NVIDIA). Texture Level of Detail Strategies for Real-Time Ray Tracing. Chapter 20 in Ray Tracing Gems, edited by Eric Haines and Tomas Akenine-Möller, Apress, 2019. License: Creative Commons Attribution 4.0 International License (CC-BY-NC-ND), https://raytracinggems.com
You can download the chapter here: PDF (9.5MB)