【问题标题】:Inputting Position Into the Pixel Shader将位置输入到像素着色器中
【发布时间】:2017-07-27 20:48:02
【问题描述】:

在我见过的大多数使用 Pixel Shader 中的顶点位置数据的程序中,都倾向于将其处理为 float4 向量。其他着色器似乎不存在此限制。例如,在我目前正在编写的程序中,float2 输入到 VS 中,float3 输入到 GS 中没有问题。但是当我尝试将这些数据输入到 PS 中时,它会拒绝除 float4 之外的所有形式。其他向量类型是否不允许进入 PS?如果有,为什么?

【问题讨论】:

    标签: direct3d hlsl pixel-shader


    【解决方案1】:

    在像素着色器中,SV_Position 是系统生成的值,必须是float4。当您在顶点着色器中使用SV_Position 语义时,它基本上只是旧POSITION 语义的别名,并且以输入布局指定的任何格式来自输入汇编器。顶点和几何着色器之间的绑定必须一致,但可以是任何值。

    换句话说,它对于像素着色器具有特殊含义,因为它是由光栅化阶段计算的像素位置。

    【讨论】:

      猜你喜欢
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      • 2011-10-16
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      相关资源
      最近更新 更多