一、Compute Shader:把 GPU 当通用计算设备
2018 年《天涯明月刀手游》、2021 年《永劫无间》——两款国产顶级游戏都在分享中提到 Compute Shader。它是 GPGPU(General-Purpose computing on GPU)的核心入口。
为什么需要 Compute Shader:
CPU 是「顺序执行」的,4–16 核并行上限有限;GPU 是「海量并行」的,数千个核心并行执行。把大量可并行的计算任务(粒子更新、纹理处理、蒙皮、布料)从 CPU 挪到 GPU,性能可提升 10–100 倍。
Compute Shader 是什么:
- 独立于渲染管线之外的 GPU 程序(不参与光栅化)。
- 用 DirectX 11 的 HLSL 编写(Unity 自动编译到目标平台)。
- 通过
kernel入口函数 +Dispatch调用启动。 - 可以读写
RWTexture2D/RWBuffer/RWStructuredBuffer。
类比:普通 Shader 是 GPU 的"流水线工人"(专门画三角形),Compute Shader 是 GPU 的"自由职业者"(可以任意计算)。
二、Compute Shader 的线程模型:三层结构
理解 Compute Shader 必须先理解它的三层