Témata prací (Výběr práce)Témata prací (Výběr práce)(verze: 385)
Detail práce
   Přihlásit přes CAS
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ý - zadáno a potvrzeno stud. odd.
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
 
Univerzita Karlova | Informační systém UK