/RegEngine

Yet another approach to developing a personal 3D graphics engine. Windows + Direct3D 12.

Primary LanguageC++MIT LicenseMIT

RegEngine

Yet another approach to developing a personal 3D graphics engine. Windows + Direct3D 12.

Work in progress... Nothing to see here. Just playing around 😀 Features implemented:

Rendering:

  • Direct3D 12 initialization and usage
  • Loading 3D models (using Assimp library)
  • Basic deferred shading

Other:

  • GUI (using Dear ImGui library)
  • Configuration loaded from and saved to a file (using RapidJSON library)

RegEngine screenshot

License

The project is open source under MIT license. See file LICENSE.txt.

Dependencies and third-party libraries

The project source code depends on:

  • C++ standard library, including some of the latest C++11/14/17/20 features
  • WinAPI from Windows 10 with some reasonably new Windows SDK, including Direct3D 12
  • Visual Studio 2022

The project uses following thirt-party libraries:

  • D3D12 Memory Allocator - easy to integrate memory allocation library for Direct3D 12, by AMD. License: MIT.
    • Directory: ThirdParty\D3D12MemoryAllocator
  • d3dx12.h - D3D12 helpers, by Microsoft. License: MIT.
    • Directory: ThirdParty\d3dx12
  • Dear ImGui by Omar Cornut. License: MIT.
    • Directory: ThirdParty\imgui-1.87
  • DirectX Shader Compiler by Microsoft. License: University of Illinois Open Source License.
    • Directory: ThirdParty\dxc_2021_12_08
  • DirectXTex - for reading and writing texture file formats, by Microsoft. License: MIT.
    • Directory: Source\packages\directxtex_desktop_win10.2021.11.8.1
  • Font Awesome - font with icons, by Fonticons, Inc. License: Font Awesome Free license.
    • File: WorkingDir\Data\Fonts\Font Awesome 6 Free-Solid-900.otf
  • GLM - mathematics library for graphics software, by G-Truc Creation. License: The Happy Bunny License or MIT.
    • Directory: ThirdParty\glm
  • IconFontCppHeaders - haader with constants for icons from Font Awesome, by Juliette Foucaut and Doug Binks. License: zlib.
    • Directory: ThirdParty\IconFontCppHeaders
  • Open Asset Import Library (assimp) - for loading 3D model file formats, by assimp team. License: BSD.
    • Directory: Source\packages\AssimpCpp.5.0.1.6
  • RapidJSON - a fast JSON parser/generator, by Tencent. License: MIT.
    • Directory: ThirdParty\rapidjson
  • str_view - null-termination-aware string-view class for C++, by Adam Sawicki. License: MIT.
    • Directory: ThirdParty\str_view
  • WinPixEventRuntime - a library for PIX events, by Microsoft. License: custom freeware.
    • Directory: Source\packages\WinPixEventRuntime.1.0.210818001

The project requires following hardware/software environment to run: PC, Windows 10+, Direct3D 12 compatible display adapter (graphics card).

Running the project in a system without beforementioned development environment installed or without Developer Mode enabled in Windows settings has not been tested yet and may not work properly.