Home

Awesome

DISCONTINUATION OF PROJECT

This project will no longer be maintained by Intel. Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project. Intel no longer accepts patches to this project.

Checkerboard Rendering (CBR) and Dynamic Resolution Rendering (DRR) Sample in DX12 MiniEngine

This repository is based on a snapshot of Microsoft's repository.

Sample Overview

The tested IDE is Visual Studio 2017.

This repository contains a straight forward integration of CBR and DRR into the DX12 MiniEngine. An indepth explanation of CBR and the algorithms presented here can be found in the corresponding white paper: https://software.intel.com/en-us/articles/checkerboard-rendering-for-real-time-upscaling-on-intel-integrated-graphics-v-12

The sample is designed to "build and run". Simply clone (or download) this repository, build the MiniEngine\ModelViewer\ModelViewer_VS17.sln solution and run. CBR is enabled by default, it (along with multiple other post processes) can be enabled or disabled by pressing the 'backspace' key to bring up the toggle menu.

CBR

The CBR options in the toggle menu are as follows:

DRR

The DRR options in the toggle menu are as follows:

Files

The core of CBR and DRR exists in two files:

ModelViewer.cpp

Modified version of the original ModelViewer.cpp in the MiniEngine. This file is responsible for jittering the viewport and setting the correct render states. To find the CBR specific code do a search for "CBR", to find the DRR specific code do a search for "DRR".

CheckerboardColorResolveCS.cs

This file is the CBR reconstruction shader, the crux of the CBR algorithm, it constructs a full resolution image from frames N-1 and N.

DirectX-Graphics-Samples

This repo contains the DirectX Graphics samples that demonstrate how to build graphics intensive applications for Windows 10. We also have a YouTube channel! Visit us here: https://www.youtube.com/MicrosoftDirectX12andGraphicsEducation

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.

Visual Studio Templates

In the Templates directory you will find copies of the projects that are available for creation in Visual Studio's "New Project" wizard.

MiniEngine: A DirectX 12 Engine Starter Kit

In addition to the samples, we are announcing the first DirectX 12 preview release of the MiniEngine.

It came from a desire to quickly dive into graphics and performance experiments. We knew we would need some basic building blocks whenever starting a new 3D app, and we had already written these things at countless previous gigs. We got tired of reinventing the wheel, so we established our own core library of helper classes and platform abstractions. We wanted to be able to create a new app by writing just the Init(), Update(), and Render() functions and leveraging as much reusable code as possible. Today our core library has been redesigned for DirectX 12 and aims to serve as an example of efficient API usage. It is obviously not exhaustive of what a game engine needs, but it can serve as the cornerstone of something new. You can also borrow whatever useful code you find.

Some features of MiniEngine

Requirements

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: http://blogs.msdn.com/b/directx/

Troubleshooting information for this repository can be found in the site Wiki.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.