Vis enkel innførsel

dc.contributor.advisorElster, Anne C.
dc.contributor.authorNilssen, Mikael Gabriel Berramdan
dc.date.accessioned2024-04-06T17:20:09Z
dc.date.available2024-04-06T17:20:09Z
dc.date.issued2023
dc.identifierno.ntnu:inspera:142737689:34884052
dc.identifier.urihttps://hdl.handle.net/11250/3125164
dc.description.abstractGPUer fortsetter å drive en imponerende visuelle og vitenskapelige utvikling. Vulkan APIen tilbyr høyere FPS (frames per second) og forbedret ray-tracing effektivitet i forhold OpenGL. Dette gjør Vulkan til et attraktivt valg for å forbedre grafikkytelsen i fysikkbaserte simuleringer. NTNU HPC-Lab Snøsimulatoren bruker for tiden OpenGL for sin visualisering av snøpartikkelsystemet. Den ble dermed valgt som en interessant testcase for å utforske og analysere om en overgang til Vulkan kunne bidra til å forbedre ytelsen og forbedre grafikken til Snøsimulatoren. Fokuset for dette arbeidet i denne oppgaven omhandler derfor å designe og implementere en Vulkan-renderer for det CUDA-baserte partikkelsystemet i Snøsimulatoren, sammen med inter-API minnedeling og synkronisering. I tillegg er den eksisterende OpenGL-grafikken i Snøsimulatoren gjenskapt med den nye Vulkan-rendereren. Her er våre hovedmål å forbedre ytelsen og grafikken til Snøsimulatoren. Vår Vulkan-renderer implementering viser forberdringer både anngående ytelse og grafiske detalijer sammenlignet med forrige OpenGL-implementering. Inter-API minnedeling og synkroniseringsmekanismer muliggjør effektiv kommunikasjon mellom det CUDA-baserte partikkelsystemet og Vulkan-rendereren. Overføringen vår av den gamle OpenGL-grafikken til Vulkan-rendereren er beskrevet, og vi viser at den vellykket gjenskaper og reflekterer grafikken i de eksisterende visualiseringene i den oppdaterte APIen. Denne prosessen innebærer å tilpasse rendering teknikker og shadere for å fungere med Vulkan, samt å utnytte mulighetene for forbedret grafikk. Videre viser vi at grafikkkvaliteten til Snøsimulatoren er forbedret gjennom bruk av Vulkan-rendereren. Det forbedrede grafiske potensialet gitt av Vulkan muliggjør bruk av bedre bildefiltrering og anti-aliasing-teknikker. I tillegg viser vi at maskinvareakselerert ray-tracing(strålesporing) med akselerasjonsstrukturer kan oppnås med Vulkan renderer arkitekturen. Fullt funksjonell ray-tracing er imidlertid ikke implementert på grunn av tidsbegrensninger, men danner ett godt grunnlag for videre utvikling. Totalt sett, er implementeringen av Vulkan-rendereren for det CUDA-baserte partikkelsystemet i Snøsimulatoren vist å gi økt ytelse i rasterisering med opptil 96% og forbedret grafikk. I tillegg til å bane vei for fremtidige fremskritt og bruk av moderne teknologier. I tillegg kommer flere ideer til utvidelser og forbedringer.
dc.description.abstractGPUs continue to drive impressive visual and scientific developments. The Vulkan API offers higher rendering framerates and improved ray-tracing efficiency over OpenGL, making Vulkan an appealing choice for enhancing graphics performance in physics-based simulations. The NTNU HPC-Lab Snow Simulator currently utilizes OpenGL for its snow particle system visualization. It was thus chosen as an interesting test case for exploring and analyzing whether a transition to Vulkan could help to improve performance and enhance the graphics of the Snow Simulator. The focus of this thesis work is thus on the design and implementation of a Vulkan renderer for the CUDA-based particle system in the Snow Simulator, along with cross-API memory sharing and synchronization. Additionally, the existing OpenGL graphics in the Snow Simulator is ported to the new Vulkan renderer. Our Vulkan renderer implementations are shown to successfully achieve improved performance and graphical potential compared to the previous OpenGL implementation. The cross-API memory sharing and synchronization mechanisms enable seamless communication between the CUDA-based particle system and the Vulkan renderer. Our port of the old OpenGL graphics to the Vulkan renderer is described, and we show that it successfully transitions and reflects the graphics in the existing visualizations to the updated API. This process involves adapting rendering techniques and shaders to work with Vulkan, leveraging its capabilities for enhanced graphics. Furthermore, we show that the graphics quality of the Snow Simulator is enhanced through the use of the Vulkan renderer. The improved graphical potential provided by Vulkan enables the use of better image filtering and anti-aliasing techniques. Additionally, we show that hardware-accelerated ray-tracing with acceleration structures can be achieved with the Vulkan render architecture. However, fully functional ray-tracing is not implemented due to time constraints but provides a good foundation for further development. Overall, the implementation of the Vulkan renderer for the CUDA-based particle system in the Snow Simulator is shown to yield increased performance in rasterization by up to 96% and improved graphics, in addition to paving the way for future advancements and the adoption of cutting-edge technologies. In addition, several ideas for extensions and improvement are also provided.
dc.languageeng
dc.publisherNTNU
dc.titleVulkan Port of OpenGL-based CUDA Snow Simulation
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel