GithubHelp home page GithubHelp logo

graphicsme / directx12tutorial Goto Github PK

View Code? Open in Web Editor NEW
10.0 1.0 1.0 302.95 MB

A series of rendering tutorials based on DirectX 12.

C++ 80.72% C 14.50% GLSL 0.03% HLSL 4.46% CMake 0.28% Batchfile 0.01%

directx12tutorial's Introduction

DirectX12 Tutorial

Overview

此项目是受LearnOpenGL启发,开发的一个基于DirectX 12的、以学习为目的的渲染器。完成的基础工作有DirectX 12图形API封装、简易应用框架、基础数学库、obj模型加载等;渲染相关算法实现了Tone Mapping、Shadow Mapping、单次大气散射、IBL、PBR、延迟渲染、Bloom、SSR等;另外有部分算法由朋友合作完成,比如TAA、皮肤渲染等。

Table of contents

Tutorial 01 - Create A Window

创建一个空的工程

Tutorial01

Tutorial 02 - Draw Triangle

渲染一个三角形,参数传递使用Descriptor Table。Root Signature初始化时调用的InitAsDescriptorRange

Tutorial02

Tutorial 03 - Draw Cube

渲染一个Cube,参数传递使用Root Constants。Root Signature初始化时调用的InitAsConstants。另外还有一种是使用Root Descriptor,Root Signature初始化调用InitAsBufferCBV,没有单独示例工程

Tutorial03

Tutorial 04 - Texturing

渲染一个带贴图的四边形,顺便测试Alpha Blending

Tutorial04

Tutorial 05 - Multiple Vertex Stream

测试multiple vertex stream,每个顶点属性一个单独的stream,渲染效果同Tutorial04

Tutorial 06 - Mesh Loader

测试OBJ mesh loader

Tutorial06

Tutorial 07 - Shadow Mapping

实现了Shadow Mapping以及PCF、VSM等变种

Tutorial07

Tutorial 08 - Atmospheric Scattering

实现了单次大气散射,计划后续完成预计算的多重散射。同时测试了Compute Shader异步调用、同步机制。

Tutorial08

Tutorial 09(1) - IBL Maps Generator

预计算了Irradiance Map、Prefiltered Environment Map、Preintegrated BRDF三种贴图,给后续使用。

Irradiance Map Tutorial09_010

Prefiltered Env Map(仅展示其中一个Mip) Tutorial09_011

Preintegrated BRDF Tutorial09_012

Tutorial 09(2) - IBL+PBR

最终包含IBL、PBR、TAA、Bloom、SSR等渲染效果。

Tutorial09_02

Tutorial Skin - Skin Rendering

实现了SSSS以及基于预计算的皮肤渲染。

TutorialSkin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.