2017-07-27 56 views
0

在我看到的大多數程序中,都使用了像素着色器中的頂點位置數據,但有一種將其作爲float4矢量處理的趨勢。這個限制似乎並不存在於其他着色器中。例如,在我正在編寫的程序中,float2被輸入到VS中,float3被輸入到GS中,沒有任何問題。但是當我嘗試將這些數據輸入PS時,它會拒絕除float4之外的所有表單。其他矢量類型是否不允許進入PS?如果是這樣,爲什麼?將位置輸入到像素着色器中

回答

1

在像素着色器中,SV_Position是系統生成的值,必須是float4。當您在頂點着色器中使用SV_Position語義時,它基本上只是舊的POSITION語義的別名,並且以輸入佈局指定的任何格式來自輸入組裝器。頂點和幾何着色器之間的綁定必須一致,但可以是任何值。

換句話說,它對像素着色器有特殊意義,因爲它是像素位置,由光柵階段計算出來。

相關問題