3D Rendering with DirectX11

3D Rendering with DirectX11

Working with DirectX11 was one of my first introductions to graphics. In this project I worked on, Terrain Generation, Object Loading, JSON manipulation, Transparency, and multiple cameras.

For my terrain generation I created a basic plane in my scene, I then imported a heightmap to adjust the height values of my plane. Before doing this, I needed to tesselate my plane to a higher density so that my height values can map to my height map more accurately. If I skipped this my terrain would be unrealistically steep or jagged. Once tessellated, I used the heightmap and a multiplier to adjust the height of the vertices accordingly.

Terrain:

While I did do this on the CPU side, this work could always be pushed to the GPU in a geometry shader for faster runtime, and facilitate much larger scale terrains.

JSON:

I created my own JSON parser that allows for object data and lighting data to be imported and read from a file, I used this for world positions of objects, texture and normal map file locations, among other miscellaneous data. For lighting it was much the same and it meant that instead of sifting through my code to change certain parameters I could do it easily from a separate file.

Transparency:

I thought it was fitting if doing a graphics project I should show some transparency to prove that it is done and that it can work on any object. This also came alongside my stencil buffer object testing to prove that it works.

Camera Manipulation:

Having some basic camera manipulation in the scene allowed me to inspect closer and around the environment to see if there where any glaring visual problems or bugs, I also have multiple cameras in the scene that can be switched between seemlessly.

Back To Home