diff --git a/Assets/DirectX12Ultimate.png b/Assets/DirectX12Ultimate.png new file mode 100644 index 000000000..9865091f5 Binary files /dev/null and b/Assets/DirectX12Ultimate.png differ diff --git a/README.md b/README.md index 137d7f7d6..d8e1eae3b 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,24 @@ # DirectX-Graphics-Samples -This repo contains the DirectX 12 Graphics samples that demonstrate how to build graphics intensive applications for Windows 10. We invite you to join us at our [discord server](http://discord.gg/directx). See our [YouTube channel](https://www.youtube.com/MicrosoftDirectX12andGraphicsEducation) for tutorials, our [spec repo](https://microsoft.github.io/DirectX-Specs/) for engineering specs of our features and [devblogs](https://devblogs.microsoft.com/directx/) for blog posts. Follow us on Twitter [@DirectX12](https://twitter.com/directx12) for the latest! See the Related Links section for our full list of DX12-related links. +This repo contains the DirectX 12 Graphics samples that demonstrate how to build graphics intensive applications for Windows 10. + +We invite you to join us at our [discord server](http://discord.gg/directx). See our [YouTube channel](https://www.youtube.com/MicrosoftDirectX12andGraphicsEducation) for tutorials, our [spec repo](https://microsoft.github.io/DirectX-Specs/) for engineering specs of our features and [devblogs](https://devblogs.microsoft.com/directx/) for blog posts. Follow us on Twitter [@DirectX12](https://twitter.com/directx12) for the latest! See the [related links](##-Related-links) section for our full list of DX12-related links. ## API Samples In the Samples directory, you will find samples that attempt to break off specific features and specific usage scenarios into bite-sized chunks. For example, the ExecuteIndirect sample will show you just enough about execute indirect to get started with that feature without diving too deep into multiengine whereas the nBodyGravity sample will delve into multiengine without touching on the execute indirect feature etc. By doing this, we hope to make it easier to get started with DirectX 12. -Recent API Sample Updates: +### DirectX 12 Ultimate samples 1. [D3D12 Mesh Shaders](Samples/Desktop/D3D12MeshShaders/readme.md): This sample demonstrates how Mesh shaders can be used to increase the flexibility and performance of the geometry pipeline. + + D3D12 Meshlet Render preview -![D3D12 Meshlet Render Preview](Samples/Desktop/D3D12MeshShaders/src/MeshletRender/D3D12MeshletRender.png) - -2. [D3D12 Variable Rate Shading](Samples/Desktop/D3D12VariableRateShading/readme.md): This sample demonstrates how shading rate can be reduced with little or no reduction in visual quality, leading to “free” performance. +1. [D3D12 Variable Rate Shading](Samples/Desktop/D3D12VariableRateShading/readme.md): This sample demonstrates how shading rate can be reduced with little or no reduction in visual quality, leading to “free” performance. + + D3D12 Variable Rate Shading GUI -![Variable Rate Shading GUI](Samples/Desktop/D3D12VariableRateShading/src/Screenshot_small.png) +1. [D3D12 Raytracing](Samples/Desktop/D3D12Raytracing/readme.md): This sample demonstrates how DirectX Raytracing (DXR) brings a new level of graphics realism to video games, previously only achievable in the movie industry. + + D3D12 Raytracing Real-Time Denoised Ambient Occlusion preview ## MiniEngine: A DirectX 12 Engine Starter Kit In addition to the samples, we are announcing the first DirectX 12 preview release of the MiniEngine. @@ -34,9 +40,10 @@ It came from a desire to quickly dive into graphics and performance experiments. * Easy-to-use dynamic constant buffers and descriptor tables ## Requirements +Some samples require support for DirectX 12 Ultimate, see [this](http://aka.ms/DirectX12UltimateDev) post for details. ### Master branch This branch is intended for the latest [released](https://docs.microsoft.com/en-us/windows/release-information/) Windows 10 version. -* Windows 10 version 20H2 +* Windows 10 version 2004 (no new features were added in version 20H2) * [Visual Studio 2019](https://www.visualstudio.com/) with the [Windows 10 SDK version 2004(19041)](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk) ### Develop branch This branch is intented for features available in the latest Windows Insider Preview @@ -46,13 +53,12 @@ This branch is intented for features available in the latest Windows Insider Pre ## Contributing We're always looking for your help to fix bugs and improve the samples. File those pull requests and we'll be happy to take a look. -Find more information on DirectX 12 on our blog: https://devblogs.microsoft.com/directx/ - Troubleshooting information for this repository can be found in the site [Wiki](https://github.com/Microsoft/DirectX-Graphics-Samples/wiki). This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. ## Related links +* [DirectX Developer Blog](https://devblogs.microsoft.com/directx) * [DirectX API documentation](https://docs.microsoft.com/en-us/windows/win32/directx) * [PIX on Windows](https://devblogs.microsoft.com/pix/documentation/) * [D3DX12 (the D3D12 Helper Library)](https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Libraries/D3DX12) diff --git a/Samples/Desktop/D3D12MeshShaders/readme.md b/Samples/Desktop/D3D12MeshShaders/readme.md index bbb274ec7..06dea823a 100644 --- a/Samples/Desktop/D3D12MeshShaders/readme.md +++ b/Samples/Desktop/D3D12MeshShaders/readme.md @@ -15,6 +15,11 @@ extendedZipContent: # Direct3D 12 mesh shader samples This collection of projects act as an introduction to meshlets, and rendering with DirectX mesh shaders. +### Requirements +* GPU and driver with support for [DirectX 12 Ultimate](http://aka.ms/DirectX12UltimateDev) + + DirectX 12 Ultimate + ### Getting Started * DirectX Mesh Shader spec/documentation is available at [DirectX Mesh Shader Specs](https://microsoft.github.io/DirectX-Specs/d3d/MeshShader.html) site. @@ -42,13 +47,6 @@ This sample presents an advanced shader technique using amplification shaders to ![D3D12 Dynamic LOD Preview](src/DynamicLOD/D3D12DynamicLOD.png) -## Requirements -* [Visual Studio 2019](https://www.visualstudio.com/). -* [Windows SDK Insider Preview](https://www.microsoft.com//software-download/windowsinsiderpreviewSDK). - * Windows 10 Insider Preview - * Windows SDK 19041 - * DirectX 12 GPU with compatible drivers - [NVIDIA RTX](https://developer.nvidia.com/directx) - ## Further resources * [DirectX Mesh Shader Spec](https://microsoft.github.io/DirectX-Specs/d3d/MeshShader.html) * [DirectXMesh Repository](https://github.com/microsoft/DirectXMesh) diff --git a/Samples/Desktop/D3D12MeshShaders/src/MeshletRender/Screenshot_DX12U.png b/Samples/Desktop/D3D12MeshShaders/src/MeshletRender/Screenshot_DX12U.png new file mode 100644 index 000000000..9b28e7c5a Binary files /dev/null and b/Samples/Desktop/D3D12MeshShaders/src/MeshletRender/Screenshot_DX12U.png differ diff --git a/Samples/Desktop/D3D12Raytracing/readme.md b/Samples/Desktop/D3D12Raytracing/readme.md index 465fa79f2..92ab08cdb 100644 --- a/Samples/Desktop/D3D12Raytracing/readme.md +++ b/Samples/Desktop/D3D12Raytracing/readme.md @@ -15,6 +15,11 @@ extendedZipContent: # Direct3D 12 raytracing samples This collection of samples act as an introduction to DirectX Raytracing (DXR). The samples are divided into tutorials and advanced samples. Each tutorial sample introduces a few new DXR concepts. Advanced samples demonstrate more complex techniques and applications of raytracing. +### Requirements +* GPU and driver with support for [DirectX 12 Ultimate](http://aka.ms/DirectX12UltimateDev) + + DirectX 12 Ultimate + ### Getting Started * DXR spec/documentation is available at [DirectX Specs site](https://microsoft.github.io/DirectX-Specs/d3d/Raytracing.html). @@ -41,7 +46,6 @@ This sample demonstrates how to implement procedural geometry using intersection ![D3D12 Raytracing Procedural Geometry GUI](src/D3D12RaytracingProceduralGeometry/Screenshot_small.png) - ## 4. [Library Subobjects Sample](src/D3D12RaytracingLibrarySubobjects/readme.md) This sample modifies the Simple Lighting sample, and illustrates how to use library subobjects. @@ -59,13 +63,6 @@ This sample demonstrates integration of the DirectX Raytracing in the MiniEngine ![D3D12 Raytracing Mini Engine](src/D3D12RaytracingMiniEngineSample/Screenshot_small.png) -## Requirements -* [Visual Studio 2019](https://www.visualstudio.com/). -* [Windows 10 May 2019 (18362) SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk). - * Windows 10 with the May 2019 update. - * Dx12 GPU with a compatible DirectX Raytracing driver. - * Nvidia: driver version 415 or higher. - * Other vendors - please consult the vendor you’re working with for HW and driver availability. ## Further resources * [Nvidia's DXR samples Github](https://github.com/NVIDIAGameWorks/DxrTutorials) diff --git a/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/Screenshot_DX12U.png b/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/Screenshot_DX12U.png new file mode 100644 index 000000000..f1f9bb648 Binary files /dev/null and b/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/Screenshot_DX12U.png differ diff --git a/Samples/Desktop/D3D12VariableRateShading/readme.md b/Samples/Desktop/D3D12VariableRateShading/readme.md index fb64f74cc..b463d9c94 100644 --- a/Samples/Desktop/D3D12VariableRateShading/readme.md +++ b/Samples/Desktop/D3D12VariableRateShading/readme.md @@ -13,14 +13,16 @@ extendedZipContent: --- # Direct3D 12 variable-rate shading sample +This sample illustrates how to use variable-rate shading (VRS) to improve application performance. VRS adds the concept of subsampling, where shading can be computed at a level coarser than a pixel. For example, a group of pixels can be shaded as a single unit, and the result is then broadcast to all samples in the group. This is great for areas of the image where extra detail doesn't help—such as those behind HUD elements, transparencies, blurs (depth-of-field, motion, etc.), and optical distortions due to VR optics. + ![Variable Rate Shading GUI](src/Screenshot.PNG) -This sample illustrates how to use variable-rate shading (VRS) to improve application performance. VRS adds the concept of subsampling, where shading can be computed at a level coarser than a pixel. For example, a group of pixels can be shaded as a single unit, and the result is then broadcast to all samples in the group. This is great for areas of the image where extra detail doesn't help—such as those behind HUD elements, transparencies, blurs (depth-of-field, motion, etc.), and optical distortions due to VR optics. +### Requirements +* GPU and driver with support for [DirectX 12 Ultimate](http://aka.ms/DirectX12UltimateDev) -#### Recommended scenarios to try -Hit SPACE to stop the light animating and then use the [F1-F5] keys to toggle between presets for Shading Rates. Can you spot the visual difference between F1 and F2? Try experimenting with the various controls to find an acceptable balance between degraded-visuals and performance. + DirectX 12 Ultimate -### Controls +## Controls * SPACE: Toggles light animation. * ALT + ENTER: Toggles between windowed and fullscreen modes. * [+/-]: Increments/decrements the glass refraction scale. @@ -30,3 +32,6 @@ Hit SPACE to stop the light animating and then use the [F1-F5] keys to toggle be * [1-7]: Selects Shading Rate for the Refraction pass. * SHIFT + [1-7]: Selects the Shading Rate for the Scene pass. * CTRL + [1-7]: Selects the Shading Rate for the Postprocess pass. + +## Recommended scenarios to try +Hit SPACE to stop the light animating and then use the [F1-F5] keys to toggle between presets for Shading Rates. Can you spot the visual difference between F1 and F2? Try experimenting with the various controls to find an acceptable balance between degraded-visuals and performance. diff --git a/Samples/Desktop/D3D12VariableRateShading/src/Screenshot_DX12U.png b/Samples/Desktop/D3D12VariableRateShading/src/Screenshot_DX12U.png new file mode 100644 index 000000000..4f308999a Binary files /dev/null and b/Samples/Desktop/D3D12VariableRateShading/src/Screenshot_DX12U.png differ