2013-03-21 342 views
0

我試圖使用HLSL代碼作爲實驗的基礎,但我不明白uv.zw代表什麼?它顯示:uv.zw在HLSL中的含義是什麼?

float4 uv0  : TEXCOORD0 
... 
uv0.zw; 

是不是隻有2?我知道uvw支持3,但第四個組件是什麼? Α?

在線示例中,我只能找到TEXCOORD0用於float2值,而不是float4

回答

0

紋理可以是3D,所以紋理座標可以有第三個維度z。

如果您熟悉齊次座標,您將知道在三維座標上表示各種變換的一種方法是通過齊次座標獲得4D,從而添加「w」座標。

0

GPU中的所有值實際上都是float4的後臺 - 聲明float或float2等僅限制使用的通道數。

如果float2值訪問.zw通道,它在技術上是未定義的,但編譯器可以接受它。所以要謹慎。

在HLSL中,名稱「uv」沒有內在定義 - 您可以使用該名稱聲明任何類型的變量。