# introduction
- 之前有个coarse pixel shading,大概就是在变化不大的区域可以一块是一次计算。主要是省电
- 似乎这个在forward已经有较好的解决方案了
- 在3个level来shading
- coarse pixel 2x2 block
- pixel
- sample
- 有人提出过deferred corse pixel
- 用computed shader,work well with msaa
- gbuffer是msaa分辨率的,有derivative
- 然后找出哪些要以什么分辨率来shade at sample rate
# 31.3 algorithm
## 31.3.1 G-buffer generation
- 除了不同gbuffer的东西外,还存了derivate of view-space Z
```
struct GBuffer
{
float4 normal_specular; //normal and specular power/intensity
float4 albedo;
float4 biased_albedo; //albedo sampled with biased sampler
float2 positionZGrad; //ddx ddy of view space z
float positionZ; //view space Z
}
```
## 31.3.2 shading pass
- 使用computed shader, 1 thread processes 1 corase region(2x2 or 4x4), 1 thre