Vectorized traversal of sparse volumes for GPU path tracing
Název práce v češtině: | Vektorizovaný přístup k řídkým objemům pro GPU sledování cest |
---|---|
Název v anglickém jazyce: | Vectorized traversal of sparse volumes for GPU path tracing |
Klíčová slova: | vykreslování|opticky aktivní média|Mitsuba 3|OpenVDB|CUDA |
Klíčová slova anglicky: | rendering|participating media|Mitsuba 3|OpenVDB|CUDA |
Akademický rok vypsání: | 2023/2024 |
Typ práce: | diplomová práce |
Jazyk práce: | angličtina |
Ústav: | Katedra softwaru a výuky informatiky (32-KSVI) |
Vedoucí / školitel: | Mgr. Tomáš Iser, Ph.D. |
Řešitel: | skrytý![]() |
Datum přihlášení: | 12.06.2024 |
Datum zadání: | 14.06.2024 |
Datum potvrzení stud. oddělením: | 14.06.2024 |
Datum a čas obhajoby: | 11.09.2024 09:00 |
Datum odevzdání elektronické podoby: | 18.07.2024 |
Datum odevzdání tištěné podoby: | 18.07.2024 |
Datum proběhlé obhajoby: | 11.09.2024 |
Oponenti: | Darryl Gouder, M.Sc. |
Konzultanti: | Tobias Rittig, B.Sc., M.Sc., Ph.D. |
Zásady pro vypracování |
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. |
Seznam odborné literatury |
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 |