0
在我看到的大多數程序中,都使用了像素着色器中的頂點位置數據,但有一種將其作爲float4矢量處理的趨勢。這個限制似乎並不存在於其他着色器中。例如,在我正在編寫的程序中,float2被輸入到VS中,float3被輸入到GS中,沒有任何問題。但是當我嘗試將這些數據輸入PS時,它會拒絕除float4之外的所有表單。其他矢量類型是否不允許進入PS?如果是這樣,爲什麼?將位置輸入到像素着色器中
在我看到的大多數程序中,都使用了像素着色器中的頂點位置數據,但有一種將其作爲float4矢量處理的趨勢。這個限制似乎並不存在於其他着色器中。例如,在我正在編寫的程序中,float2被輸入到VS中,float3被輸入到GS中,沒有任何問題。但是當我嘗試將這些數據輸入PS時,它會拒絕除float4之外的所有表單。其他矢量類型是否不允許進入PS?如果是這樣,爲什麼?將位置輸入到像素着色器中
在像素着色器中,SV_Position
是系統生成的值,必須是float4
。當您在頂點着色器中使用SV_Position
語義時,它基本上只是舊的POSITION
語義的別名,並且以輸入佈局指定的任何格式來自輸入組裝器。頂點和幾何着色器之間的綁定必須一致,但可以是任何值。
換句話說,它對像素着色器有特殊意義,因爲它是像素位置,由光柵階段計算出來。