Connecting the Direct3D graphics API with the convenient, effective development capabilities of the higher level managed programming languages, was previously achieved using the XNA, and now – among others – the SharpDX framework, which already supports the development with DirectX 11.
My master thesis provides a survey on the DirectX 11 graphics API and SharpDX framework, and the usual functionality of rendering engine, and I present object oriented software architecture and the provided interface of the implemented rendering engine.
I address the tasks of asset handling and video memory management, and present a model, with which different rendering techniques can be applied together and configured in a flexible way for the rendering engine. I present some graphical techniques’, which are commonly used in 3D games, effective implementation using the described rendering engine. I describe the commonly used lighting models and a technique to produce shadows. I present rendering aspects and techniques, using which one can render scenes with many objects in it, and show ways to adaptively render objects in a scene.
Besides the rendering engine I wrap an existing physics engine to a library, using which the graphical and physical entities can be synchronized with each other. I describe a solution for convenient input device handling.
Using the rendering and physical engines’ services I implement a game engine, which - with extending the functionality of the rendering engine and synchronizing it with the physics engine – provides a convenient handling of the entities that are commonly used in 3D games.
I integrate the implemented software components into an application and create a simple demo scene and mini game using them.