All Projects → discosultan → Dx12 Game Programming

discosultan / Dx12 Game Programming

DirectX 12 C# samples from Frank D. Luna's book "Introduction to 3D Game Programming with Direct3D 12.0"

Projects that are alternatives of or similar to Dx12 Game Programming

Awesome D3d12
Awesome D3D12 ecosystem
Stars: ✭ 130 (-16.67%)
Mutual labels:  directx, d3d12
Diligentsamples
Sample projects demonstrating the usage of Diligent Engine
Stars: ✭ 138 (-11.54%)
Mutual labels:  directx, d3d12
Bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Stars: ✭ 10,252 (+6471.79%)
Mutual labels:  directx, d3d12
Methanekit
🎲 Modern 3D graphics made simple with cross-platform C++17 meta-API on top of DirectX 12 & Metal (Vulkan is coming)
Stars: ✭ 197 (+26.28%)
Mutual labels:  directx, d3d12
Diligentengine
A modern cross-platform low-level graphics library and rendering framework
Stars: ✭ 2,142 (+1273.08%)
Mutual labels:  directx, d3d12
Llgl
Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal
Stars: ✭ 1,011 (+548.08%)
Mutual labels:  directx, d3d12
Directx Headers
Official DirectX headers available under an open source license
Stars: ✭ 173 (+10.9%)
Mutual labels:  directx, d3d12
D3d12memoryallocator
Easy to integrate memory allocation library for Direct3D 12
Stars: ✭ 234 (+50%)
Mutual labels:  directx, d3d12
Renderdoc
RenderDoc is a stand-alone graphics debugging tool.
Stars: ✭ 5,969 (+3726.28%)
Mutual labels:  directx, d3d12
D912pxy
DirectX9 to DirectX12 API proxy for Guild Wars 2
Stars: ✭ 833 (+433.97%)
Mutual labels:  directx, d3d12
Dgvoodoo2
Glide/DirectX implementation on D3D11/12
Stars: ✭ 137 (-12.18%)
Mutual labels:  directx, d3d12
Hlslexplorer
See how hardware understands your HLSL
Stars: ✭ 91 (-41.67%)
Mutual labels:  d3d12
Blue Flame Engine
A 3D/2D game engine that supports both DirectX11 and OpenGL 4.5
Stars: ✭ 129 (-17.31%)
Mutual labels:  directx
Shaderconductor
ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
Stars: ✭ 1,146 (+634.62%)
Mutual labels:  d3d12
Flycube
Graphics API wrapper is written in C++ on top of Directx 12 and Vulkan. Provides main features including ray tracing.
Stars: ✭ 78 (-50%)
Mutual labels:  d3d12
Directxtk
The DirectX Tool Kit (aka DirectXTK) is a collection of helper classes for writing DirectX 11.x code in C++
Stars: ✭ 1,918 (+1129.49%)
Mutual labels:  directx
Indielib Crossplatform
IndieLib is a cross-platform Game Graphics engine. Main focus is OpenGL ES 2.0 for mobile iOS operating system, and OpenGL desktop. **NOT SUPPORTED ANYMORE**
Stars: ✭ 64 (-58.97%)
Mutual labels:  directx
Bsf
Modern C++14 library for the development of real-time graphical applications
Stars: ✭ 1,640 (+951.28%)
Mutual labels:  directx
Dds Ktx
Single header KTX/DDS reader
Stars: ✭ 62 (-60.26%)
Mutual labels:  directx
Klayge
KlayGE is a cross-platform open source game engine with plugin-based architecture.
Stars: ✭ 1,646 (+955.13%)
Mutual labels:  d3d12

What is this sorcery?

A collection of DirectX 12 C# samples from Frank D. Luna's book Introduction to 3D Game Programming with Direct3D 12.0. All the samples have been ported to .NET using SharpDX.

Building

The samples will compile with Visual Studio 2015+ and run on Windows 10 with DirectX 12 capable graphics hardware.

Samples

The number prefix for sample name indicates its corresponding chapter from the book.

Note that there might be issues: some which are inherited from the original C++ samples and some which have been introduced during the porting process. All known issues are listed in the issues section.

04-InitDirect3D

Sets up a window using WinForms. Initializes Direct3D 12 and builds a base app with game loop upon which next samples are built.

06-Box

Manually defines vertices to render a colored box. Scene can be rotated and zoomed using mouse buttons.

07-Shapes

Generates geometric primitives. Renders multiple objects using a single vertex and index buffer.

07-LandAndWaves

Constructs a heightmap based terrain and water geometry using a dynamic vertex buffer.

08-LitWaves

Adds ambient, diffuse and specular lighting to the land and waves scene.

08-LitColumns

Introduces parsing and loading a skull mesh from a custom model format. Applies lighting to the shapes scene.

09-Crate

Textures a box with uv-coordinates added to its vertices.

09-TexWaves

Animates a water texture in the land and waves scene.

09-TexColumns

Textures objects in the shapes scene.

10-Blend

Renders the land and waves scene with transparent water and a wire fence textures. Introduces the blending formula and creates a fog effect.

11-Stencil

Constructs a mirror using the stencil buffer and projects a shadow for the skull mesh.

12-TreeBillboards

Renders trees as billboards. Introduces texture arrays and alpha to coverage in relation to MSAA.

13-VecAdd

Sums a bunch of vectors on GPU instead of CPU for high parallelism using a compute shader. Outputs a results.txt file instead of rendering to screen.

13-WavesCS

Uses a compute shader to update the land and waves scene waves simulation on GPU instead of CPU.

13-Blur

Applies a Gaussian blur post-processing effect using a compute shader to the land and waves scene.

13-SobelFilter

Applies a Sobel filter post-processing effect using a compute shader to the land and waves scene to render outlines for geometry.

14-BasicTessellation

Tessellates a quad using 4 control points.

14-BezierPatch

Tessellates a quad using 16 control points cubic Bézier surface.

15-CameraAndDynamicIndexing

Creates a controllable first person camera. Introduces dynamic indexing of texture arrays. Camera is moved using WASD keys and rotated using a mouse.

16-InstancingAndCulling

Renders multiple copies of the skull mesh using a hardware instanced draw call. Culls skulls outside of camera frustum.

17-Picking

Enables picking individual triangles of a car mesh. Right mouse button picks a triangle which is highlighted using a yellow color.

18-CubeMap

Renders a sky texture cube. Uses the cube to render reflections on scene objects.

18-DynamicCube

Renders scene objects into a texture cube every frame. Uses the rendered cube for reflections.

19-NormalMap

Makes use of normal maps in addition to diffuse maps to generate more realistic lighting of surfaces.

20-Shadows

Projects shadows into a shadow map which is blended with the diffuse target.

21-Ssao

Computes real-time screen space ambient occlusion and applies it as a post-processing effect.

22-Quaternions

Animates skull rotation using quaternions.

23-SkinnedMesh

Plays a walking animation for an animated skinned soldier mesh loaded from .m3d format.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].