Thesis (Selection of subject)Thesis (Selection of subject)(version: 385)
Thesis details
   Login via CAS
Vectorized traversal of sparse volumes for GPU path tracing
Thesis title in Czech: Vektorizovaný přístup k řídkým objemům pro GPU sledování cest
Thesis title in English: Vectorized traversal of sparse volumes for GPU path tracing
Key words: vykreslování|opticky aktivní média|Mitsuba 3|OpenVDB|CUDA
English key words: rendering|participating media|Mitsuba 3|OpenVDB|CUDA
Academic year of topic announcement: 2023/2024
Thesis type: diploma thesis
Thesis language: angličtina
Department: Department of Software and Computer Science Education (32-KSVI)
Supervisor: Mgr. Tomáš Iser, Ph.D.
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 12.06.2024
Date of assignment: 14.06.2024
Confirmed by Study dept. on: 14.06.2024
Date and time of defence: 11.09.2024 09:00
Date of electronic submission:18.07.2024
Date of submission of printed version:18.07.2024
Date of proceeded defence: 11.09.2024
Opponents: Darryl Gouder, M.Sc.
 
 
 
Advisors: Tobias Rittig, B.Sc., M.Sc., Ph.D.
Guidelines
Rendering with participating media requires volumetric 3D textures to describe the 3D composition of the objects, modulating various parameters such as the single-scattering albedo or extinction coefficient. For regular grids, such textures are huge and require excessive memory, which is especially a problem when rendering on the GPU, where memory is typically smaller than on the CPU.

Sparse data structures leverage sparsity in the 3D texture values, for example in the background or constant regions, to compress the data. OpenVDB is a library that was invented for sparse storage on the CPU, and has been recently extended as NanoVDB to be compatible with GPU storage and access patterns. However, this implementation is not compatible with vectorization.

Mitsuba 3 is a state-of-the-art research renderer that builds on Dr.Jit, a just-in-time (JIT) compiler for ordinary and differentiable computation. The software builds on a vectorized and massively parallel execution on both CPU (via LLVM) and GPU (via CUDA). However, the existing implementations do not support sparse data structures and rely on regular grids.

The goal of this thesis is to access the sparse NanoVDB grids within a vectorized and parallelized GPU path tracer. Specifically:
- Investigate and implement a prototype of accessing NanoVDB grids within Dr.Jit, also supporting the LLVM/CUDA modes.
- The NanoVDB/Dr.Jit implementation should also consist of unit tests verifying the correctness against the original NanoVDB implementation.
- Implement a volume plugin for Mitsuba 3 for rendering such sparse grids using the above Dr.Jit implementation.
- Prepare and execute a scientific comparison (accuracy, speed and memory benchmarks) between the new implementation and the original Mitsuba 3.
References
Jakob et al., 2022, Dr.Jit: A Just-In-Time Compiler for Differentiable Rendering, https://doi.org/10.1145/3528223.3530099
Jakob et al., 2022, Mitsuba 3 renderer, https://mitsuba-renderer.org
Nimier-David et al., 2019, Mitsuba 2: a retargetable forward and inverse renderer, https://doi.org/10.1145/3355089.3356498
Museth, 2013, VDB: High-resolution sparse volumes with dynamic topology, https://doi.org/10.1145/2487228.2487235
Kužel, 2021, Real-time voxel visualization and editing for 3D printing, https://doi.org/20.500.11956/148776
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html