Skip to content

GraphicsMe/DirectX12Tutorial

Repository files navigation

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

About

A series of rendering tutorials based on DirectX 12.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •