此项目为一个基于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博客 - 黑键输出了部分对应的笔记。
笔记:
VSM(Variance shadow maps)
笔记:
示例结果:预计算生成Irradiance Map、Prefiltered Environment Map、Preintegrated BRDF三种贴图,以及三阶SH系数。
Preintegrated BRDF
Prefiltered Environment Map
- 预过滤环境贴图,其中的一级Mip。
基于预积分的IrradianceMap
基于三阶SH的Irradiance Map
笔记:
示例最终包含IBL、PBR、Bloom、SSR等渲染效果。
笔记:
关闭TAA:
开启TAA
相机和物体运动情况下的TAA效果
笔记:
常量面光源
纹理面光源
笔记:
基于预积分的皮肤渲染
预积分查找表
渲染效果
基于模糊的皮肤渲染:
笔记:
SSAO
HBAO
GTAO
- TODO:效果不对,需要Debug。















