Enhancing the HPC-Lab Snow Simulator with More Realistic Terrains and Other Interactive Features
MetadataVis full innførsel
Taking advantage of the raw processing power offered by today's graphic processing units (GPUs) has become a major research topic. The amount of repeated independent computation that goes into the simulation of physical systems such as wind and snow simulations makes them great candidates for GPU parallelization.The HPC-Lab at the Norwegian University of Science and Technology (NTNU) has had several master students contributing to a real-time snow simulation. This thesis presents the work done to implement a number of real-time rendering techniques to improve the realism of this snow simulator. The main implementation of our snow simulator, which this thesis is based on, runs on the GPU using CUDA.The rendering is done in OpenGL, so the use of CUDA/OpenGL interoperability has been integral to achieve the performance needed to render the simulator output in real-time. The additional rendering techniques introduced by this thesis work are mesh texturing and lighting, triplanar texturing, scalar texture mixing, Perlin noise texture blending, shadow mapping, distance fog, skybox, billboarding and procedural texturing. Keeping the strict real-time constraint of the snow simulator has been the most important factor in choice and implementation of the rendering techniques. Our results show that scalar mixing, shadow mapping, distance fog and skybox all give significant visual improvements to the snow simulator, at a relatively low cost, keeping the frame rate above 24 frames per second (fps) for terrains of resolution 1024x1024 vertices. Triplanar texturing, however, turns out to not be that well suited for the snow simulator because of the added computational cost of doing several texture samples for each fragment, and the lack of visual improvement due to the relatively flat terrain height maps used. Procedural texturing of the snow particles using Perlin noise are tested and shown to be as fast as using image textures, with nearly 25 fps when rendering 5 million particles using a wind field with resolution 128x32x128 over a 768x768 terrain on a PC with a NVIDIA's GTX480 card. It significantly improves the realism of the rendered snowfall. Ideas for further improvements are also included.