This is my master thesis and therefore it was the last step to reach my degree as a Master of Science in Engineering. In the paper I showed how to use DirectX 10 and 11 techniques for rendering vegetation. Primary I used the capabilities of the Geometry Shader (DX10) and Tessellation (DX11). Because it has to be guaranteed that games work in real-time, even in big environments with a wide view, the thesis also dealt with optimization methods, such as different levels of detail and culling techniques. I always tried to give a reference to out-of-core problems which are caused by big scenes not fitting into main memory. For this problem structures for efficient data management and algorithms for loading data out of external memory exist.
This project is another graphics demo for shaders and can be seen as an extension to the first one. I used the same scene again, but developed other shaders and new techniques. It is possible to activate various effects to compare the results. Two features are normal mapping and displacement mapping, where you can observe the second one as more realistic. Shadow mapping was also included again, but this time I extended it by using a 3×3 PCF map and a blur function to have soft shadows. A rotating light source can be activated to have a more impressive effect of the shadows. Another new feature is the implementation of a particle system. To activate it, a raycast is done by pressing a key and then an eventual hit point on an object will be determined. At this point the particle system will be casted, which is visualized as an explosion, like it can be seen in the picture.
This graphic demo was developed with C# and XNA. The source code can be found on GitHub.
The second bachelor thesis showed the advantages and use cases for Shader programs. In the first part the reader gets the definition of a Shader, how it operates on hardware level and what different types exist. Later the thesis tells about the history and how the shading language evolved. For giving an introduction how to implement one, there is a presentation of the various languages and what IDEs can be used for developing and debugging. For the main part of the paper, I developed several interesting effects myself, to show how Shaders can be used and how they are applied in the industry. In the picture here, there is an example for the shadow mapping technique, where the Shader is used to determine whether a pixel lies in shadow or not.
The Shader samples were developed with C#, XNA and HLSL. The bachelor thesis can be downloaded in German.