- Rendering Engine
- Support for Multiple Graphics APIs : OpenGL | Vulkan | DirectX12 | DirectX11 | Metal
 - Content Export Pipeline : Create Maya/Max Plugins to export meshes based on Renderers needs. (Assimp Commercial Licence -> Pay)
 - Texture Compression Libraries
 - Material System : Artists Configure shaders, textures, parameters to import in game
 - Game-side Manager of Models/Materials/Lights
 - Good Visibility System (Frustum/Occlusion) (VisibilityBuffers?)
 - Multi-Threded Submission System to reduce cost of submission to GPU
 - Lighting/Shadow Rendering System
 - PostFX System
 - Particle System
 - Detailed Performance Profiling System
 - Scene Graph (Spatial Partitioning)
 - LOD / Tessellation
 - Camera
 - Animation
 - Sorting
 - Other Techniques
- Reflections, Ambient Occlusion, ...
 
 
 - Non-Rendering
- Assets/Packaging
 - Audio
 - Collision
 - Input
 - Realtime update of Shaders, Materials, Textures
 
 
- Rendering APIs
- Render Context
 - Swap Chain
 - Vertex and Index Buffer
 - Texture, Buffer
 - Shaders (maps to Material above)
 - States (Raster, Depth, ...)
 - Pipelines
 - Render Passess
 - Framebuffers
 - ----------- Modern APIs --------------
 - Command Queue, Command Buffers
 - Semaphore, Fence
 - Descriptor Sets, Root Signatures, .... (Related to binding views/data to GPU Shaders)
 
 
- 
Open Source Projects
- BGFX | Vulkan, OpenGl, DirectX12, Metal, WebGL, ...
 - TheForge | Vulkan, Metal, DirectX12, DirectX11, PS4, XBOX, Stadia, ...
 - DiligentEngine | Direct3D11, Direct3D12, Vulkan, OpenGL4.1, OpenGLES3.0+ | Intersting Engine Because:
- Good write ups and blogs on it's Rendering Architecture (links below)
 
 - Autodesk Stringray Renderer | Not Opensourced but good blog posts
 
 - 
Blogs, Articles, Video Series
- Our Machinery | Engine developers with a passion for diversity, openness and knowledge sharing. Our previous work include the Stingray, Bitsquid and Diesel engines.
 - Stingray / Bitsquid
- Stingray Renderer Walkthrough | 2017/02
- Overview
 - Resources & Resource Contexts
 - Render Contexts
 - Sorting
 - RenderDevice
 - RenderInterface
 - Data-driven rendering
 - Stingray-renderer & Mini-renderer
 - Shaders & Materials
 
 
 - Stingray Renderer Walkthrough | 2017/02
 - The Cherno - GameEngine Playlist | Developer at Frostbite with clean and good videos. (see Rendering Architecture Videos)
 - Diligent Engine
 
 - 
Talks/Slides(GDC, Siggraph, ...)
- Destiny's Multithreaded Rendering Architecture | 2015 | Natalya Tatarchuk
 - 'Destiny' Shader Pipeline | 2017 | Natalya Tatarchuk, Chris Tchou
 - Optimizing The Graphics Pipeline with Compute | Frostbite
 - Multithreading the Entire Destiny Engine | 2015 | Bungie's Barry Genova
 - GPU-Driven Rendering Pipelines | Ubisoft | Assassin’s Creed Unity
 - Designing a Modern GPU Interface | Brooke Hodgman
 
 
- Sascha Williems - Vulkan Examples
 - I Am Graphics And So Can You | Dustin Land
 - Vulkan Tutorial
 - Vulkan in 30 Minutes | RenderDoc
 - Modern Graphics APIs | Cool Pictures
 - Niagara | Building a Vulkan Renderer
 - Awsome Vulkan | Vulkan Resources
 - Vulkan Hardware Info
 
- Performance Tweets Series: Root signature & descriptor sets - GPUOpen
 - Descriptor binding: DX12 and Vulkan - Graphics and GPU Programming - GameDev.net
 - Tips and Tricks: Vulkan Dos and Don'ts | NVIDIA Developer Blog
 - Shader modules - Vulkan Tutorial
 - Descriptor pool and sets - Vulkan Tutorial
 - Choosing a binding model · Issue #19 · gpuweb/gpuweb · GitHub
 - 13.2. Descriptor Sets
 
- Vulkan Memory Management | Developer.NVIDIA
 - Vulkan Memory Management | The Khronos Group
 - VulkanMemoryAllocator
 - VULKAN MEMORY MANAGEMENT : HOW TO WRITE YOUR OWN ALLOCATOR
 - Memory Management in Vulkan™ and DX12 | AMD
 - Vulkanised 2018 - Memory Management in Vulkan | ARM
 - Vulkan Device Memory - 5min read