Skip to content

qjh5606/MyDirectX12Tutorial

Repository files navigation

DX12图形练习仓库

此项目为一个基于DirectX 12的、以学习图形算法为目的的渲染器(和朋友GraphicsMe一起开发实现的)。

工程开发方面,完成了:

  • DirectX 12图形API封装(参考MiniEngine
  • 简易应用框架
  • 基础数学库
  • obj模型加载
  • ...

图形算法方面,实现了一些常用的实时渲染算法:

  • 延迟渲染;

  • IBL;

  • PBR;

  • 球谐光照(Spherical Harmonics Lighting);

  • 阴影(Shadow Mapping);

  • 基于时间的抗锯齿算法(TAA);

  • 泛光(Bloom);

  • 景深(DOF);

  • 色调映射(ToneMapping);

  • 基于LTC的面光源渲染;

  • 皮肤渲染;

    • 基于预积分的皮肤渲染;
    • SSSS;
  • 环境光遮蔽(Ambient Occlusion);

    • SSAO
    • HBAO
    • GTAO
  • 屏幕空间反射(SSR);

  • ...

并在CSDN博客 - 黑键输出了部分对应的笔记。

部分示例

Shadow Mapping

笔记:

VSM(Variance shadow maps)

IBL Maps Generator

笔记:

示例结果:预计算生成Irradiance Map、Prefiltered Environment Map、Preintegrated BRDF三种贴图,以及三阶SH系数。

Preintegrated BRDF

Prefiltered Environment Map

  • 预过滤环境贴图,其中的一级Mip。

基于预积分的IrradianceMap

基于三阶SH的Irradiance Map

IBL+PBR

笔记:

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

TAA

笔记:

关闭TAA

开启TAA

相机和物体运动情况下的TAA效果

LTC

笔记:

常量面光源

纹理面光源

Skin Rendering

笔记:

基于预积分的皮肤渲染

预积分查找表

渲染效果

基于模糊的皮肤渲染

Ambient Occlusion

笔记:

SSAO

HBAO

GTAO

  • TODO:效果不对,需要Debug。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors