Skip to content

About

Basic 3D Engine with minimal external dependencies using WinAPI and Direct3D 11

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

330 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TapiEngine tapiengine_logo

Sponza scene loaded in TapiEngine

TapiEngine is a basic 3D engine written in C++ with minimal external dependencies. It leverages WinAPI and Direct3D 11 to provide a lightweight yet functional environment for 3D graphics development on Windows.

Features

  • Minimal external dependencies for ease of setup and portability
  • Core rendering capabilities using Direct3D 11
  • Windows-native application loop and input handling via WinAPI
  • Object-Component system for flexible scene management
  • Designed for learning, prototyping, and extending

Architecture

Architecture diagram

A scene-based archtecture similar to Unity's GameObject-Component system is implemented in TapiEngine. Each scene contains multiple objects, and each object can have multiple components that define its behavior and properties. This modular approach allows for easy extension and customization of the engine's functionality.

Render Queue

Render Queue diagram

The scene collects all renderable objects and sorts them instead of immediate rendering. This centralizes the rendering process, allowing for better control over rendering order and optimizations. It also helps not mess up the pipeline state.

Getting Started

Prerequisites

  • Windows OS
  • Visual Studio 2022 (recommended) or any C++ compiler with Direct3D 11 SDK support

Building

  1. Clone the repository:
    git clone https://github.com/smartflame17/TapiEngine.git
  2. Open the project in Visual Studio.
  3. Build the solution.

Running

After building, run the executable from your build output directory. You should see a window initialized by WinAPI and rendered via Direct3D 11.

Acknowledgements

  • Microsoft for WinAPI, DirectXTK and Direct3D 11
  • The imgui library for providing a simple and effective GUI solution
  • The assimp library for model loading capabilities
  • The box3d library for collision detection and physics simulation
  • The open-source community for inspiration and guidance

License

TapiEngine is licensed under the MIT License. See LICENSE.md for more details.

Made with ❤️ by smartflame17

About

Basic 3D Engine with minimal external dependencies using WinAPI and Direct3D 11

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages