- 0Metal #0 Swift 回顾画出第一个三角形之前需要的 Swift:声明、可选值、闭包、协议,以及值类型与引用类型的分野。2024年4月29日
- 1Metal #1 初始化最小的完整 Metal 应用:MTKView、device、command queue,以及每一帧 Metal 都要走的四个步骤。2024年4月30日
- 2Metal #2 渲染管线Pipeline state、vertex descriptor 与 render command encoder —— 在 Metal 里几何数据究竟是怎么走到屏幕上的。2024年5月11日
- 3Metal #3 顶点函数顶点函数:顶点描述符、属性绑定、uniform 的三种传递方式,以及为什么 MVP 变换要放在这里做。2024年5月18日
- 4Metal #4 片元函数片元函数:插值限定符、深度与混合、多渲染目标,以及为什么 quad 是 GPU 上真正的调度单位。2024年5月25日
- 5Metal #5 纹理纹理:加载与像素格式、采样器与寻址模式、mipmap 与各向异性过滤,以及 sRGB 为什么必须交给硬件处理。2024年6月1日
- 6Metal #6 摄像机与交互摄像机与交互:视图矩阵是什么、透视与正交投影、Metal 的 [0,1] 深度约定,以及一个能用的轨道摄像机。2024年6月15日
- 7Metal #7 光照光照:Phong 与 Blinn-Phong、三种光源类型、衰减模型,以及多光源该放在哪里循环。2024年6月29日
- 8Metal #8 材质材质:从 Phong 参数走到 PBR 的 metallic-roughness 工作流,法线贴图与 TBN,以及 Cook-Torrance 各项在算什么。2024年7月13日
- 9Metal #9 渲染通道渲染通道:load / store action 为什么是 TBDR 架构上最重要的开关,离屏渲染、MTLHeap,以及帧的组织方式。2024年7月27日
- 10Metal #10 阴影阴影贴图:深度 pass、阴影矩阵、痤疮与彼得潘现象的成因和解法,PCF 与级联。2024年8月10日
- 11Metal #11 延迟渲染延迟渲染:G-Buffer 的组织与压缩、光照 pass,以及 Apple Silicon 上用 tile memory 做单 pass 延迟渲染。2024年8月24日
- 12Metal #12 粒子系统粒子系统:用 compute shader 做模拟、GPU 上的发射与回收、实例化渲染,以及排序问题。2024年9月7日
- 13Metal #13 曲面细分曲面细分:Metal 用 compute 算细分因子的独特设计、置换贴图与地形 LOD,以及接缝裂开的原因。2024年9月21日
- 14Metal #14 后处理后处理:HDR 与色调映射、泛光、SSAO 的采样策略,以及为什么后处理链应该用 compute 而不是全屏三角形。2024年10月12日
- 15Metal #15 反射与折射反射与折射:立方体贴图与 IBL、平面反射、屏幕空间反射的原理与它必然的失效情形,以及折射与色散。2024年10月26日
- 16Metal #16 动画动画:变换的插值与四元数、骨骼蒙皮的矩阵调色板、GPU 蒙皮的两种做法,以及为什么关键帧要放在 compute 里求值。2024年11月9日
- 17Metal #17 光线追踪(一)渲染算法光线追踪(一):渲染方程、蒙特卡洛估计与重要性采样,以及 Metal 的加速结构和 intersector API。2024年11月23日
- 18Metal #18 光线追踪(二)阴影与光照光线追踪(二):阴影射线与软阴影、下一事件估计、路径追踪循环与俄罗斯轮盘赌,以及混合渲染管线。2024年12月7日
- 19Metal #19 光线追踪(三)性能优化光线追踪(三):射线发散与波前重排、加速结构的构建策略、采样序列的选择,以及怎么用 GPU 帧捕获定位瓶颈。2024年12月21日
- 21Metal #21 [附录] 计算着色器把 GPU 用在绘制之外的地方:kernel 函数、线程组,以及如何正确地划分一次 dispatch。2024年9月14日
- 22Metal #22 [附录] SwiftUI 中的 MetalSwiftUI 的 shader 修饰符让 Metal Shading Language 能作用在普通视图上。这座桥怎么搭起来,又止步于何处。2024年9月30日