CG语言 之 POSITION vs SV_POSITION

1、以SV开头的语义为系统数值语义(system-value semantics),是在DirectX 10中引入的,这些语义在渲染流水线中有特殊的含义。

2、若使用SV_POSITION语义去修饰顶点着色器的输出变量pos,就表示pos包含了可用于光栅化的变换后的顶点坐标(即齐次剪裁空间中的坐标)。

3、用这些语义描述的变量是不可以随便赋值的,因为流水线需要使用它们来完成特定的目的,如渲染引擎会把用SV_POSITION修饰的变量经过光栅化后显示在屏幕上。

4、有时会出现同一个变量在不同的Shader里面使用不同的语义修饰,如一些Shader会使用POSITION而非SV_POSITION来修饰顶点着色器的输出。在大多数平台上,它和POSITION语义是等价的,但在某些平台(如索尼PS4)上必须使用SV_POSITION来修饰顶点着色器的输出,否则无法让Shader正常工作。同样的例子还有COLOR和SV_Target。

5、为了让Shader有更好的跨平台性,对于这些有特殊含义的变量,最好使用以SV开头的语义进行修饰。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值