# 参考项目
    D:\down\Mod\directx\dx37
# 参考网址
- https://learnopengl.com/
- https://github.com/microsoft/DirectXTK12
- https://github.com/boxerprogrammer/directx12_samples

    
# learnopengl 大纲

> 来源：https://learnopengl.com/
> 编码 `SSNN`：`SS`=节号（严格按本大纲），`NN`=小节序号。对应源码目录 `source/SSNN-名称/`，
> 用 `make run SSNN` 编译并运行，如 `make run 0203`。每章标题链接到 LearnOpenGL 原文；行首 ✅ 表示已完成。

## 01. Introduction（简介）
- [Introduction](https://learnopengl.com/Introduction)

## 02. Getting Started（入门）
- [0201 OpenGL（理论，无代码）](https://learnopengl.com/Getting-started/OpenGL)
- ✅ [0202 Creating a Window（创建窗口）](https://learnopengl.com/Getting-started/Creating-a-window) → `source/0202-window/`
- ✅ [0203 Hello Window](https://learnopengl.com/Getting-started/Hello-Window) → `source/0203-hello-window/`
- ✅ [0204 Hello Triangle（第一个三角形）](https://learnopengl.com/Getting-started/Hello-Triangle) → `source/0204-hello-triangle/`
- ✅ [0205 Shaders（着色器）](https://learnopengl.com/Getting-started/Shaders) → `source/0205-shaders/`
- ✅ [0206 Textures（纹理）](https://learnopengl.com/Getting-started/Textures) → `source/0206-textures/`
- ✅ [0207 Transformations（变换）](https://learnopengl.com/Getting-started/Transformations) → `source/0207-transformations/`
- ✅ [0208 Coordinate Systems（坐标系）](https://learnopengl.com/Getting-started/Coordinate-Systems) → `source/0208-coordinate-systems/`
- ✅ [0209 Camera（摄像机）](https://learnopengl.com/Getting-started/Camera) → `source/0209-camera/`
- [0210 Review（回顾）](https://learnopengl.com/Getting-started/Review)

## 03. Lighting（光照）
- ✅ [0301 Colors（颜色）](https://learnopengl.com/Lighting/Colors) → `source/0301-colors/`
- ✅ [0302 Basic Lighting（基础光照）](https://learnopengl.com/Lighting/Basic-Lighting) → `source/0302-basic-lighting/`
- ✅ [0303 Materials（材质）](https://learnopengl.com/Lighting/Materials) → `source/0303-materials/`
- ✅ [0304 Lighting Maps（光照贴图）](https://learnopengl.com/Lighting/Lighting-maps) → `source/0304-lighting-maps/`
- ✅ [0305 Light Casters（投光物）](https://learnopengl.com/Lighting/Light-casters) → `source/0305-light-casters/`
- ✅ [0306 Multiple Lights（多光源）](https://learnopengl.com/Lighting/Multiple-lights) → `source/0306-multiple-lights/`
- [0307 Review（回顾）](https://learnopengl.com/Lighting/Review)

## 04. Model Loading（模型加载）
- [0401 Assimp](https://learnopengl.com/Model-Loading/Assimp)
- [0402 Mesh（网格）](https://learnopengl.com/Model-Loading/Mesh)
- ✅ [0403 Model（模型）](https://learnopengl.com/Model-Loading/Model) → `source/0403-model-loading/`

## 05. Advanced OpenGL（高级 OpenGL）
- ✅ [0501 Depth Testing（深度测试）](https://learnopengl.com/Advanced-OpenGL/Depth-testing) → `source/0501-depth-testing/`
- ✅ [0502 Stencil Testing（模板测试）](https://learnopengl.com/Advanced-OpenGL/Stencil-testing) → `source/0502-stencil-testing/`
- ✅ [0503 Blending（混合）](https://learnopengl.com/Advanced-OpenGL/Blending) → `source/0503-blending/`
- ✅ [0504 Face Culling（面剔除）](https://learnopengl.com/Advanced-OpenGL/Face-culling) → `source/0504-face-culling/`
- ✅ [0505 Framebuffers（帧缓冲）](https://learnopengl.com/Advanced-OpenGL/Framebuffers) → `source/0505-framebuffers/`
- ✅ [0506 Cubemaps（立方体贴图）](https://learnopengl.com/Advanced-OpenGL/Cubemaps) → `source/0506-cubemaps/`
- ✅ [0507 Advanced Data（高级数据）](https://learnopengl.com/Advanced-OpenGL/Advanced-Data) → `source/0507-advanced-data/`
- ✅ [0508 Advanced GLSL（高级 GLSL）](https://learnopengl.com/Advanced-OpenGL/Advanced-GLSL) → `source/0508-advanced-glsl/`
- ✅ [0509 Geometry Shader（几何着色器）](https://learnopengl.com/Advanced-OpenGL/Geometry-Shader) → `source/0509-geometry-shader/`
- ✅ [0510 Instancing（实例化）](https://learnopengl.com/Advanced-OpenGL/Instancing) → `source/0510-instancing/`
- ✅ [0511 Anti Aliasing（抗锯齿）](https://learnopengl.com/Advanced-OpenGL/Anti-Aliasing) → `source/0511-anti-aliasing/`

## 06. Advanced Lighting（高级光照）
- ✅ [0601 Advanced Lighting](https://learnopengl.com/Advanced-Lighting/Advanced-Lighting) → `source/0601-advanced-lighting/`
- ✅ [0602 Gamma Correction（伽马校正）](https://learnopengl.com/Advanced-Lighting/Gamma-Correction) → `source/0602-gamma-correction/`
- 0603 Shadows（阴影）
  - ✅ [060301 Shadow Mapping（阴影贴图）](https://learnopengl.com/Advanced-Lighting/Shadows/Shadow-Mapping) → `source/060301-shadow-mapping/`
  - ✅ [060302 Point Shadows（点阴影）](https://learnopengl.com/Advanced-Lighting/Shadows/Point-Shadows) → `source/060302-point-shadows/`
- ✅ [0604 Normal Mapping（法线贴图）](https://learnopengl.com/Advanced-Lighting/Normal-Mapping) → `source/0604-normal-mapping/`
- ✅ [0605 Parallax Mapping（视差贴图）](https://learnopengl.com/Advanced-Lighting/Parallax-Mapping) → `source/0605-parallax-mapping/`
- ✅ [0606 HDR](https://learnopengl.com/Advanced-Lighting/HDR) → `source/0606-hdr/`
- ✅ [0607 Bloom（泛光）](https://learnopengl.com/Advanced-Lighting/Bloom) → `source/0607-bloom/`
- ✅ [0608 Deferred Shading（延迟着色）](https://learnopengl.com/Advanced-Lighting/Deferred-Shading) → `source/0608-deferred-shading/`
- ✅ [0609 SSAO（屏幕空间环境光遮蔽）](https://learnopengl.com/Advanced-Lighting/SSAO) → `source/0609-ssao/`

## 07. PBR（基于物理的渲染）
- [0701 Theory（理论）](https://learnopengl.com/PBR/Theory) 
- ✅ [0702 Lighting（光照）](https://learnopengl.com/PBR/Lighting) → `source/0702-pbr-lighting/`
- ✅ 0703 IBL（基于图像的光照）
  - ✅ [070301 Diffuse Irradiance（漫反射辐照）](https://learnopengl.com/PBR/IBL/Diffuse-irradiance) → `source/070301-pbr-ibl-diffuse-irradiance/`
  - ✅ [070302 Specular IBL（镜面 IBL）](https://learnopengl.com/PBR/IBL/Specular-IBL) → `source/070302-pbr-ibl-specular/`

## 08. In Practice（实战）
- ✅ [0801 Debugging（调试）](https://learnopengl.com/In-Practice/Debugging) → `source/0801-debugging/`
- ✅ [0802 Text Rendering（文本渲染）](https://learnopengl.com/In-Practice/Text-Rendering) → `source/0802-text-rendering/`
- ✅ [0803 2D Game / Breakout（2D 游戏总览）](https://learnopengl.com/In-Practice/2D-Game/Breakout) → `source/0803-2d-game/`
  - ✅ [080301 Setting Up（搭建）](https://learnopengl.com/In-Practice/2D-Game/Setting-up) → `source/080301-setting-up/`
  - ✅ [080302 Rendering Sprites（渲染精灵）](https://learnopengl.com/In-Practice/2D-Game/Rendering-Sprites) → `source/080302-rendering-sprites/`
  - ✅ [080303 Levels（关卡）](https://learnopengl.com/In-Practice/2D-Game/Levels) → `source/080303-levels/`
  - ✅ [080304 Collisions（碰撞）：Ball](https://learnopengl.com/In-Practice/2D-Game/Collisions/Ball) / [Collision Detection](https://learnopengl.com/In-Practice/2D-Game/Collisions/Collision-detection) / [Collision Resolution](https://learnopengl.com/In-Practice/2D-Game/Collisions/Collision-resolution) → `source/080304-collisions/`
  - ✅ [080305 Particles（粒子）](https://learnopengl.com/In-Practice/2D-Game/Particles) → `source/080305-particles/`
  - ✅ [080306 Postprocessing（后处理）](https://learnopengl.com/In-Practice/2D-Game/Postprocessing) → `source/080306-postprocessing/`
  - ✅ [080307 Powerups（道具）](https://learnopengl.com/In-Practice/2D-Game/Powerups) → `source/080307-powerups/`
  - ✅ [080308 Audio（音频）](https://learnopengl.com/In-Practice/2D-Game/Audio) → `source/080308-audio/`
  - ✅ [080309 Render Text（渲染文本）](https://learnopengl.com/In-Practice/2D-Game/Render-text) → `source/080309-render-text/`
  - [080310 Final Thoughts（总结）](https://learnopengl.com/In-Practice/2D-Game/Final-thoughts)

## 09. Guest Articles（客座文章）
按年份收录（非主干课程，不强求 SSNN 编码）：
- **2020**：
  - [**090101 OIT · Introduction**：透明为何难、有序/精确/近似三类 OIT、通用三 Pass。](https://learnopengl.com/Guest-Articles/2020/OIT/Introduction)
  - ✅ [**090102 OIT · Weighted Blended**：2013 近似 OIT，accum + revealage 两渲染目标加权累加后全屏合成。](https://learnopengl.com/Guest-Articles/2020/OIT/Weighted-Blended) → `source/090102-oit/`
  - ✅ [**090103 Skeletal Animation**：骨骼动画，Lerp/Slerp 插值 + Assimp 骨骼/关键帧 + 顶点蒙皮。](https://learnopengl.com/Guest-Articles/2020/Skeletal-Animation) → `source/090103-skeletal-animation/`
- **2021**：
  - ✅ [**090201 CSM**：大场景方向光级联阴影，切子视锥 + 紧贴正交 + 2D 数组纹理 + 几何着色器 layered rendering。](https://learnopengl.com/Guest-Articles/2021/CSM) → `source/090201-csm/`
  - ✅ [**090202 Scene Graph**：parent-child Entity + Transform，local 经父链得 global，dirty flag 增量更新。](https://learnopengl.com/Guest-Articles/2021/Scene/Scene-Graph) → `source/090202-scene-graph/`
  - ✅ [**090203 Frustum Culling**：6 平面视锥 + 包围体(球/AABB)判定，只把可见物送 GPU。](https://learnopengl.com/Guest-Articles/2021/Scene/Frustum-Culling) → `source/090203-frustum-culling/`
  - ✅ [**090204 Height Map**：CPU 前置章，WIC 加载高度图纹理。](https://learnopengl.com/Guest-Articles/2021/Tessellation/Height-map) → `source/090204-height-map/`
  - ✅ [**090205 Tessellation**：GPU 曲面细分地形(patch + HS/DS)，按距相机动态 LOD。](https://learnopengl.com/Guest-Articles/2021/Tessellation/Tessellation) → `source/090205-tessellation/` 
  - ✅ [**090206 DSA**：⚠️ 官方 "In development" 空壳。](https://learnopengl.com/Guest-Articles/2021/DSA)
- **2022**：
  - ✅ [**090307 Compute Shaders · Introduction**：GPU 通用计算(4.3+)，work group × local size，image/SSBO + dispatch + barrier。](https://learnopengl.com/Guest-Articles/2022/Compute-Shaders/Introduction)
  - ✅ [**090308 Phys. Based Bloom**：无阈值 HDR 泛光，下采样 + 逐级帐篷核上采样，小权重 mix 回源。](https://learnopengl.com/Guest-Articles/2022/Phys.-Based-Bloom)
  - ✅ [**090309 Area Lights**：基于 LTC 的多边形面积光，矩阵变换 clamped cosine 逼近 GGX。](https://learnopengl.com/Guest-Articles/2022/Area-Lights) → `source/090309-area-lights/`

## 10. Code Repository（代码仓库）
- [Code repository](https://learnopengl.com/Code-repository)
## 11. Translations（翻译）
- [Translations](https://learnopengl.com/Translations)
## 12. Privacy（隐私）
- [Privacy](https://learnopengl.com/Privacy)
## 13. About（关于）
- [About](https://learnopengl.com/About)
