绘制管线中的计算频率
最简单的情况

几何管线
参数曲面,生成连续曲面

管线的几何部分

Geometry Shader,其实不好用,过于自由的修改顶点,没法知道顶点总数。导致速度慢,从而用的少。
Tessellation shader 曲面细分着色器

使用重心坐标插值出细分后的顶点值

更平滑的几何 PNTriangles
增加几何细节 Displacement Map
细分后定点也许会沿法线变化,在硬边的情况下,可能会出现裂缝
Mesh shader
直接在计算管线里生成任意 Mesh


着色管线
以 Quad 即四个像素为单位执行,为了 ddx, ddy,通常为了抗锯齿。 写入是覆盖了像素中心。
MSAA 抗锯齿,Color Blend 的时候每个像素多次采样判断是否全覆盖像素,不过计算每个像素还是只算中心一次。 可以硬件 MSAA,也可以手写 shader msaa
Variable Shading Rate
采用不同的着色范围,不一定是一个像素着色一次。
根据画面的不同区域重要程度
根据角色重要程度
根据材质重要程度
根据高频低频区域

几何项
高频
发现变化大
几何细节多
低频区域
平坦
光滑
屏幕信号
频谱分析
高频
光照变化剧烈
纹理细节丰富
低频
光照平缓
纹理较为一致
比较远
着色项
高频
高光的 Lobe 中心
影音的半影区域
低频
漫反射
原理高光中心
完全被影子遮蔽
分辨率
AO
GI
都可以降分辨率渲染
着色方程优化
Move to Vertex / Tesslation
Multi-rate shading
最后更新于
这有帮助吗?