Directx11 C++ project

Project Overview:

This was my first deep dive into DirectX 11, where I built a custom graphics engine capable of loading 3D models, applying textures, and rendering dynamic scenes with advanced lighting. The engine features an object loader, texture loader, skybox rendering, and positional lighting, creating an immersive 3D environment.


Key Features and Technical Implementation

Model & Texture Loading

  • Implemented a custom OBJ model loader to parse and render 3D objects with proper vertex, normal, and UV data.
  • Developed a texture loader supporting .dds files and applied them to models via DirectX shaders.
  • Ensured efficient memory management by optimizing resource loading and unloading.

Skybox & Environment Rendering

  • Created a cubemap-based skybox to simulate a realistic background environment.
  • Integrated seamless blending between the skybox and scene objects for visual consistency.

Dynamic Lighting System

  • Implemented positional lighting (point lights) using HLSL shaders, allowing for realistic illumination of objects.
  • Adjusted light properties (intensity, color, attenuation) to enhance scene depth and material appearance.

Scene Management and Object Interaction

  • Designed three distinct scenes, each showcasing different 3D models (e.g., vehicles, structures, or abstract objects).
  • Added object rotation logic, where some models dynamically rotate around their own axes for visual demonstration.
  • Structured the engine to support easy scene switching without performance downsides.

Technologies Used

  • Languages: C++, HLSL
  • APIs: DirectX 11
  • Tools: Visual Studio, PIX for GPU debugging

What I Learned

  • Low-level graphics pipeline understanding (IA, VS, PS, OM stages in DX11).
  • Shader programming fundamentals (vertex/pixel shaders, constant buffers).
  • Performance considerations in real-time rendering (batch rendering, resource management).

This project solidified my understanding of real-time rendering and motivated me to explore more advanced graphics techniques.