Feb 2024

C++ · DirectX 11 · HLSL · Rendering · Graphics Programming

DirectX 11 Rendering Engine

A stage-focused DirectX 11 prototype connecting model buffers, shaders, textures, matrices, and indexed draw calls.

Project Goal

This project focused on understanding the DirectX 11 rendering pipeline by following its stage-based graphics flow in C++.

  • I wanted to understand how Direct3D 11 moves model data through the input assembler, shader stages, texture sampling, and draw-call execution.
  • The goal was to make the DirectX pipeline concrete in code rather than treating rendering as a black box inside a game engine.
  • I treated the project as a graphics-pipeline study: small in scope, but focused on correctly connecting the main rendering stages.

Implementation

I implemented a compact DirectX 11 rendering-pipeline prototype.

  • Built a custom model-loading and buffer-setup path that reads model data, creates vertex and index buffers, and binds them to the DirectX input-assembler stage.
  • Implemented shader setup using HLSL, including vertex- and pixel-shader compilation, input-layout creation, matrix constant-buffer setup, and sampler-state creation.
  • Implemented texture loading and shader-resource binding, then updated world-view-projection matrices through Map / Unmap before rendering the model with DrawIndexed.

Result

The project helped me become familiar with the DirectX rendering pipeline by implementing its core stages directly.

  • Produced a working DirectX 11 prototype rendering textured model data through manually created buffers, shaders, textures, constant buffers, and draw calls.
  • Clarified how Direct3D 11 connects the input assembler, vertex shader, pixel shader, texture sampler, constant buffer, and indexed drawing process.
  • Established a code-level understanding of DirectX’s stage-based rendering flow, especially how CPU-side resource setup connects to GPU-side rendering execution.