站长统计
电子表格averageifSV_POSITION与SV_Target
命名空间中的类和接口用于创建web应用程序的页面
长春linux培训DX9与DX11shader编写中SV_POSITION与POSITION和SV_Target与COLOR之间的区别(⼀)
cg语⾔ SV_POSITION vs POSITIONthinkphp绕过宝塔
Very simple question about fragment function
在unity shader的学习和⼯作中经常看到 SV_POSITION和SV_Target,之前也看了⼀些⽂章,⼀直模模糊糊的概念,现在差不多清楚了,记录⼀下。
SV_POSITION和SV_Target都是语义绑定(semantics binding) ,可以理解为关键字吧,图形渲染是按照固定的流程⼀步⼀步⾛的,所以也叫管线,应该是这个意思吧,在这个过程中,前⾯流程处理完的数据是需要传到下⼀个流程继续处理的,因为gpu和cpu的架构不同,这⼜是个更⼤的知识点了,有兴趣的同学可以⾃⼰去了解⼀下,这⾥不多说了,所以呢gpu并不能像cpu⼀样有内存堆栈可以⽤来存取变量和值,只有通过语义绑定(semantics binding) 将处理好的值存到⼀个物理位置,⽅便下⼀个流程去取,⼀般的可编程管线主要处理vertext(顶点)函数和fragment(⽚段)函数,当然也有叫⽚元函数的,⼀个意思吧。sow
SV_前缀的变量代表system value的意思,在DX10+的语义绑定中被使⽤代表特殊的意义,SV_POSITION在⽤法上和POSITION是⼀样的,区别是 SV_POSTION⼀旦被作为vertex函数的输出语义,那么这个最终的顶点位置就被固定了,不得改变。DX10+推荐使⽤
SV_POSITION作为vertex函数的输出和fragment函数的输⼊,⽽vertex函数的输⼊还是使⽤POSITION。不过DX10以后的代码依旧兼容POSITION作为全程表达,估计编译器会⾃动判断并替换的吧。
position和location的区别SV_Target是DX10+⽤于fragment函数着⾊器颜⾊输出的语义。DX9使⽤COLOR作为fragment函数输出语义,但是也有⼀些着⾊器语⾔使⽤COLOR来表⽰⽹格数据和顶点输出语义,效果和功能是⼀样的,没有什么区别,同时使⽤COLOR的话DX10+也会兼容。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。