sm2.0和sm3.0的差异

来源:互联网 发布:飘逸杯什么牌子好 知乎 编辑:程序博客网 时间:2024/05/21 10:57

我们先来看看下面的表格,从中可以清楚的了解到Shader Model 3.0所具备的新功能。

Pixel Shader功能
Shader 2.0
Shader 3.0
描述

Shader长度

96

65535+

允许采用更复杂的阴影、光线和程序

动态分支

不支持

支持

通过跳过无关像素上的复杂着色以提高性能

Shader抗锯齿

不支持

内置派生指令

开发人员能够计算屏幕空间以调整着色频率或者进行多重采样处理,以降低画面失真

背面寄存器

不支持

支持

允许在一次处理工序中处理双面材质的光源

内插值色彩格式

最低8-bit整数

最低32-bit浮点

更高的颜色范围和色彩精度,允许采用顶点级别的高动态范围光源

多重渲染目标

可选

4个

允许高级光源算法,以节省过滤和顶点操作。能够以最低成本实现更多的光源处理

雾和镜面效果

固定8-bit功能

可自定义的fp16-fp32 shader程序

Shader Model 3.0让开发人员能够完全、精确的控制雾和镜面反射效果。在Shader Model 2.0中,这些效果都是固定的。

材质坐标数量

8

10

更多的per-pixel输入允许更逼真的渲染,尤其适合渲染皮肤。

  下面是Vertex Shader Model 2.0到Vertex Shader Model 3.0所作出的改变:

Vertex shader 功能
Shader 2.0
Shader 3.0
描述

Shader长度

256指令

65535指令

更多的指令允许更为细致的角色光源和动画处理

动态分支

不支持

支持

通过跳过无关像素上的复杂着色以提高性能

顶点材质

不支持

对多达4个的材质进行查找

允许置换贴图和粒子特效

支持实例

不支持

必须

允许使用一条指令绘制各种物体