Graphics engine written in C++ using DirectX11

Overview

Adria-DX11

Graphics engine written in C++/DirectX11. For successful build you will need textures that you can find here.

Features

  • Entity-Component System
  • Deferred + Forward Rendering
  • Tiled Deferred Rendering
  • Clustered Deferred Rendering
  • Voxel Cone Tracing Global Illumination
  • Physically Based Shading
  • Image Based Lighting
  • Normal Mapping
  • Shadows
    • PCF Shadows for Directional, Spot and Point lights
    • Cascade Shadow Maps for Directional Lights
  • Volumetric Lighting
    • Directional Lights with Shadow Maps
    • Directional Lights with Cascade Shadow Maps
    • Point and Spot Lights
  • HDR and Tone Mapping
  • Bloom
  • Depth Of Field + Bokeh
    • Bokeh shapes supported - Hexagon, Octagon, Circle, Cross
  • Ambient Occlusion: SSAO, HBAO
  • SSR
  • SSCS
  • Deferred Decals
  • FXAA
  • TAA
  • God Rays
  • Lens Flare
  • Fog
  • Motion Blur
  • Volumetric Clouds
  • Ocean FFT
    • Adaptive Tesselation
    • Foam
  • Procedural Terrain with Instanced Foliage and Trees
  • Hosek-Wilkie Sky Model
  • Particles
  • ImGui Editor
  • Model Loading with tinygltf
  • Profiler
  • Shader Hot Reloading
  • Camera and Light Frustum Culling

Dependencies

tinygltf

ImGui

ImGuizmo

ImGuiFileDialog

stb

FastNoiseLite

json

Screenshots

Editor alt text

Tiled Deferred Rendering with 256 lights Tiled Deferred Rendering Visualized
Voxel Cone Tracing Global Illumination Voxelized Scene

Image Based Lighting alt text

Ocean and Lens Flare alt text

Volumetric Lighting alt text alt text

Bokeh alt text

Volumetric Clouds alt text

Hosek-Wilkie Sky Model alt text

God Rays and Instanced Foliage alt text

Deferred Decals alt text

You might also like...
SSD1306 library and simple graphics core library based on Adafruit GFX Library.

Raspberry Pico SSD1306 + GFX Library Based on Adafruit GFX Library https://github.com/adafruit/Adafruit-GFX-Library Usage Hardware Connect your SSD130

Plua is a superset of Lua for classic PalmOS devices with added support for graphics, UI, networking, events and sound.

Plua2c Plua is a superset of Lua for classic PalmOS devices with added support for graphics, UI, networking, events and sound. This is the source code

4 keys rhythm game on Casio Power Graphics calculators.

fx4K 简体中文 - English 简介 运行在卡西欧 fx-9750 与 fx-9860 系列图形计算器上的4K(四按键)下落式音游。 项目开始前可行性的考虑与实现的难度 屏幕刷新率 这个计算器的屏幕刷新率可以非常的高,但由于液晶显示屏在显示上会有延迟而造成残影,有可能会让读谱产生困难。另外,

hb-libgd is a graphics library for the dynamic manipulation of images.

hb-libgd Harbour bindings for libGD 2.3.3, GD is an open source code library for the dynamic creation of images by programmers. GD has builtin support

Reference Implementations of P0267, the proposed 2D graphics API for ISO C++

P0267 Reference Implementation Please read the LICENSE before cloning or forking the code as there is important information there! Please see the wiki

Gfx - A minimalist and easy to use graphics API.

gfx gfx is a minimalist and easy to use graphics API built on top of Direct3D12/HLSL intended for rapid prototyping. It supports: Full shader reflecti

CMake modules for common applications related to computer graphics

cgcmake CMake modules for common applications related to computer graphics Sample Usage Maya Project |-- CMakeLists.txt |-- cgcmake |-- modules

Visualization Library is a C++ middleware for high-performance 2D and 3D graphics applications based on OpenGL 1.x-4.x supporting Windows, Linux and Mac OS X.

Visualization Library 2.2 Gallery About Visualization Library is a C++ middleware for high-performance 2D and 3D graphics applications based on the in

Window.js is an open-source Javascript runtime for desktop graphics programming.

Window.js Window.js is an open-source Javascript runtime for desktop graphics programming. It is documented at windowjs.org. Introduction Window.js pr

Comments
  • C/C++ Additional Directory Issue

    C/C++ Additional Directory Issue

    ThirdParty\tinygltf Thirdparty\tinyobjloader Thirdparty\FastNoiseLite

    Path is wrong just do compiled

    Please change $(SolutionDir)ThirdParty\tinygltf $(SolutionDir)Thirdparty\tinyobjloader $(SolutionDir)Thirdparty\FastNoiseLite then all good Path

    opened by KINGBEEWEB 1
  • Deprecation warnings with Visual Studio 17.3

    Deprecation warnings with Visual Studio 17.3

    Describe the bug

    Upon upgrading the Visual Studio to 17.3 I get the following warnings:

    warning C4996: '_Header_ciso646': warning STL4036: is removed in C++20. You can define _SILENCE_CXX20_CISO646_REMOVED_WARNING or _SILENCE_ALL_CXX20_DEPRECATION_WARNINGS to acknowledge that you have received this warning.

    abseil-cpp/absl/meta/type_traits.h(125,50): warning C4996: 'std::aligned_storage<_Len,_Align>': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to acknowledge that you have received this warning.

    you add project preprocessorDefinitions _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS plz thx.

    opened by KINGBEEWEB 0
Releases(1.0)
Owner
Mate Buljan
Mate Buljan
OpenGL Template Engine - a C++ OpenGL graphics engine which aimed to be a simple startup template for 3D OpenGL projects.

OpenGL Template Engine is a C++ OpenGL graphics engine which aimed to be a simple startup template for 3D OpenGL projects. This is the template I personally use for my own projects and provides me with the general OpenGL 3D render setup with model import and UI.

Marcus Nesse Madland 2 May 16, 2022
F Graphics Library (FGL) is a small graphics C++ portable library for LCD displays on embedded systems

F Graphics Library (FGL) Full documentation: fgl.docsforge.com (By Filipe Chagas) F Graphics Library is a C++ library that I created for use in embedd

Filipe Chagas 8 Dec 14, 2021
GraphicsFuzz provides tools for automatically finding and simplifying bugs in graphics drivers, specifically graphics shader compilers.

GraphicsFuzz GraphicsFuzz is a set of tools for testing shader compilers GraphicsFuzz provides tools for automatically finding and simplifying bugs in

Google 502 Sep 9, 2022
CSC404: Computer Graphics [CG] & CSL402: Computer Graphics Lab [CG Lab]

COMPUTER-GRAPHICS-AND-COMPUTER-GRAPHICS-LAB CSC404: CG & CSL402: CG LAB [SEMESTER IV] Syllabus CG - Reference Books THE WALL MEGA SATISH - AUTHOR CG C

AMEY THAKUR 7 Apr 28, 2022
Anti-Grain Evolution. 2D graphics engine for Speed and Quality in C++.

Anti-Grain Evolution This project is based on ideas found in Maxim (mcseem) Shemanarev's Anti-Grain Geometry library, but oriented towards maximizing

Artem G. 95 Aug 29, 2022
Fluid simulation engine for computer graphics applications

Fluid Engine Dev - Jet Jet framework is a fluid simulation engine SDK for computer graphics applications that was created by Doyub Kim as part of the

Doyub Kim 1.4k Sep 20, 2022
Rewritten version of the MiniLibX graphics API used by 42, using glfw & glad. Running on OpenGL.

Written by W2.Wizard for the 42 Network A recreation of the MiniLibX library used by 42, using GLFW & glad, running on OpenGL. The goal of MLX42 is to

Codam 87 Sep 21, 2022
Love 6's Regular Expression Engine. Support Concat/Select/Closure Basic function. Hope u can enjoy this tiny engine :)

Regex_Engine Love 6's Blog Website: https://love6.blog.csdn.net/ Love 6's Regular Expression Engine Hope u can love my tiny regex engine :) maybe a fe

Love6 2 May 24, 2022
Sword Engine is a fork of Psych Engine that plans on adding more features and quality of life improvements.

⚠️ WARNING: This README is currently incomplete, This warning will be removed once it's complete. Friday Night Funkin' - Sword Engine Sword Engine is

swordcube 7 Jul 9, 2022
Two Tribes Engine; the engine which we used to create Toki Tori 2+ and RIVE with

Two Tribes Engine We, Two Tribes, have used this engine for over a decade. It started with early development on the Nintendo DS and ultimately resulte

Two Tribes 119 Sep 16, 2022