top of page

DESCRIPTION

GALLERY

DIRECT-X 11

Now this DirectX 11 Project is an adaptation to my second year university DirectX 11 artifact. The idea of this project was to develop my understanding of software architecture but applying it to graphics programming using the DirectX API.

It features some further more intermediate graphics concepts such as Normal Mapping and Specular Mapping each with their own shader which is selected depending on the requirements of an object at runtime aswell as a modified Wavefront OBJ File parser to generate 3D information for DirectX as opposed to my first year OpenGL parser. There is also a geometry generator for simple geometry such as cubes, spheres, quads and grids which generate 3D information based on the dimensions given to the generator.

​

So I wanted to create a system whereby I can give a configuration file to the program and all my objects should spawn in with the required textures applied and at translated accordingly. I created an XML File which is parsed by TinyXML defining this information with an an object builder that creates the objects according to the config definition and adds it to a Key-value-pair structure with a name as a key.

Now this was all very well and good; except I was making copies of information that could be defined once and uses references to these objects instead.
At this point I created a texture manager and model manager based on the same principle, except these are parsed first then the objects XML file follows because now I can give the objects XML file names to receive references of textures and models from their respective key-value-pairs.

Due to the fact there is normally only one camera active at one time I decided that it would be appropriate to build all the cameras at the start and select the camera. Seeing as all the cameras will have the same basic requirements, that is access to View and Projection Matrices and an Update I created an interface which can be implemented by all cameras and I have created a concrete first-person camera and a concrete static camera and the application will call ICamera's Update, GetView and GetProjection functions.

Additionally I have created an InputManager which sits on top of the DirectInput library aswell as my own program logging system as to assist with debugging and displaying information.

Gallery currently unavailable - Check back soon!

bottom of page