Rendering engine development with SharpDX

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.