The following thesis analyses the functionality and programming capabilitiesrnof compute shaders. For this purpose, chapter 2 gives an introductionrnto compute shaders by showing how they work and how they can be programmed. In addition, the interaction of compute shaders and OpenGL 4.3 is shown through two introductory examples. Chapter 3 describes an NBodyrnsimulation that has been implemented in order to show the computational power of compute shaders and the use of shared memory. Then it is shown in chapter 4 how compute shaders can be used for physical simulationsrnand where problems may arise. In chapter 5 a specially conceived and implemented algorithm for detecting lines in images is described and then compared with the Hough transform. Lastly, a final conclusion is drawn in chapter 6.
Simulation von Schnee
(2015)
Physic simulations allow the creation of dynamic scenes on the computer. Computer generated images become lively and find use in movies, games and engineering applications. GPGPU techniques make use of the graphics card to simulate physics. The simulation of dynamic snow is still little researched. The Material Point Method is the first technique which is capable of showing the dynamics andrncharacteristics of snow.
The hybrid use of Lagrangian particles and a regular cartesian grid enables solving of partial differential equations. Therefore articles are transformed to the grid. The grid velocities can then be updated with the calculation of gradients in an FEM-manner (finite element method). Finally grid node velocities are weight back to the particles to move them across the scene. This method is coupled with a constitutive model to cover the dynamic nature of snow. This include collisions and breaking.
This bachelor thesis connects the recent developments in GPGPU techniques of OpenGL with the Material Point Method to efficiently simulate visually compelling, dynamic snow scenes.
Tiny waves driven by wind, shallow, long waves, head overlapping sea, all of these waves occur in every ocean and even in small lakes. The surface of water is one of the most versatile phenomenas of nature. Not only the movement of waves, but also the reflection of sky, sun and coastline makes the surface of water unique. Exactly this complexity is what brings its own challenges to the simulation of water surfaces. That is why simulation of water occupies mathematicians with a challenge for nearly 400 years now.
In the last fifty years this challenge has more and more shifted to computer science. Computer graphic designers have tried to visualise water in a realistic manner for centuries. Science in this field expends from simple noise filters to mathematically complex solutions like Fourier Transformation.
In the following work historical background of todays wave theories, as well as mathematical fundamentals are given. The focus of this work is set on the implementation of these methods in OpenGL 3.3.
Real-time graphics applications are tending to get more realistic and approximate real world illumination gets more reasonable due to improvement of graphics hardware. Using a wide variation of algorithms and ideas, graphics processing units (GPU) can simulate complex lighting situations rendering computer generated imagery with complicated effects such as shadows, refraction and reflection of light. Particularly, reflections are an improvement of realism, because they make shiny materials, e.g. brushed metals, wet surfaces like puddles or polished floors, appear more realistic and reveal information of their properties such as roughness and reflectance. Moreover, reflections can get more complex, depending on the view: a wet surface like a street during rain for example will reflect lights depending on the distance of the viewer, resulting in more streaky reflection, which will look more stretched, if the viewer is locatedrnfarther away from the light source. This bachelor thesis aims to give an overview of the state-of-the-art in terms of rendering reflections. Understanding light is a basic need to understand reflections and therefore a physical model of light and its reflection will be covered in section 2, followed by the motivational section 2.2, that will give visual appealing examples for reflections from the real world and the media. Coming to rendering techniques, first, the main principle will be explained in section 3 followed by a short general view of a wide variety of approaches that try to generate correct reflections in section 4. This thesis will describe the implementation of three major algorithms, that produce plausible local reflections. Therefore, the developed framework is described in section 5, then three major algorithms will be covered, that are common methods in most current game and graphics engines: Screen space reflections (SSR), parallax-corrected cube mapping (PCCM) and billboard reflections (BBR). After describing their functional principle, they will be analysed of their visual quality and the possibilities of their real-time application. Finally they will be compared to each other to investigate the advantages and disadvantages over each other. In conclusion, the gained experiences will be described by summarizing advantages and disadvantages of each technique and giving suggestions for improvements. A short perspective will be given, trying to create a view of upcoming real-time rendering techniques for the creation of reflections as specular effects.
The present thesis covers the implementation and optimization of global illumination in three-dimensional scenes. Global illumination does not only consider direct illumination dependent on one or more light sources, but also indirect illumination which is emitted by surrounding objects in the scene. The thesis focuses on the implementation of a global illumination method and its improvement using OpenGL 4.4. This is done by a voxelization of the scene. By traversing the resulting voxel structure, additional information is taken from the scene, which contributes to a plausible global illumination.
This thesis covers the mathematical background of ray-casting as well as an exemplary implementation on graphics processing units, using a modern programming interface. The implementation is embedded within an editor, which enables the user to activate optimizations of the algorithm. Techniques like transfer functions and local illumination are available for a more realistic visualization of materials. Moreover, the user interface gives access to features like importing volumes, let one define a custom transfer function, holds controls to adjust parameters of rendering and allows to activate further techniques, which are also subject of discussion in this thesis. Benefit of all shown techniques is measured, whether it is expected to be visual or on the part of performance.
Ray Tracing enables a close to reality rendering implementation of a modelled scene. Because of its functioning, it is able to display optical phenomena and complex lighting. Though, numerous computations per pixel have to be done. In practice implementations can not achieve computer graphics" aim of real-time rendering close to 60 frames per second. Current Graphics Processing Units (GPU) allows high execution parallelism of general-purpose computations. By using the graphics-API OpenGL this parallelism can be achieved and it is possible to design and realize a Ray-Tracer, which operates entirely on the GPU. The developed approach will be extended by an Uniform Grid - a Ray-Tracing acceleration structure. Hence, a speed-up is expected.
This thesis` purpose is the implementation of Ray-Tracer, which operates completely on the GPU, and its expansion by integrating an Uniform Grid. Afterwards, the evaluation of maximum achievable performance takes place. Possible problems regarding GPU-programming will be identified and analysed.
In der vorliegenden Studienarbeit wird eine OpenGL-Applikation vorgestellt, die Geometrie-Shader in einem Feedback-Loop einsetzt, um auf der GPU Geometrie zu erzeugen. Dargelegt werden die erforderlichen Grundlagen Geometrie-Shader und Transform Feedback betreffend, die Umsetzung der Anwendung und die eingesetzten GLSL-Shader.