To create a complete interactive 3D application it is necessary to leverage the power of existing software libraries, such as a 3D graphics API and physics library. The graphics API that is used in this module is the DirectX11 SDK, which is provided Microsoft.
DirectX11 allows the programmer to "send" the triangles that make up a 3D object to the graphics card, where it will be rendered on the screen. In-depth knowledge of vectors and matrices is needed to position this object in the virtual world.
Another important part of a 3D application is the physics engine. This engine is responsible for calculating the collisions of objects inside the virtual world.
For example, a game character must be able to walk on the floor of a building.Another example could be crates that can be pushed over a surface (but not through a wall).
The physics engine that is used in this module is a commercial Physics API (such as Havoc. PhysX, ...).
The third topic in this course is the creation of effects to enhance the look of the 3D application. Effects or shaders are implemented in HLSL which is the High Level Shading Language.
In this course module simple lighting models (such as Phong shading) are used to illustrate the concept of a shader.
An academic C++ Game Engine is used to teach these concepts, and at the end of the module you will be able to implement a full featured 3D game.
With the skills you learn in this module you will be able to smoothly integrate into an experienced team of developers.
The contents of this module includes the theory, exercises and implementation in C++ of:
- Win32 API , DirectX Initialisation, rendering pipeline
- Vertex buffer, index buffers, vertex description
- World, View en Projection transformations
- Basic HLSL Effects
- Primitives(cube, quad)
- Integration with the Physics Engine
- Terrain rendering, Skybox
- 3D Meshes
- Debug rendering
- Shader Programming:
- Basis Pixel Shader / Vertex Shader /geometry shader
- Three-point lighting
Technology used: Microsoft Visual Studio