HLSL是高階著色語言的簡稱。在進行DirectX程式設計時,我們用它來對頂點進行相關處理。那麼,HLSL與普通C++變數有什麼不同,我們又該怎樣如何使用它呢?
工具/原料
DirextX
數值型別
數值型別即標量型別,在HLSL中,可使用以下數值型別:bool、int、half、float、double。其中half是16 位浮點數。
注意,有些型別可能某些平臺不支援,這時我們用float型別來代替。
向量型別
HLSL中的內建向量型別有vector和vector
vector
如果我們想要訪問指定向量中的某個分量,可用如下方式來訪問:
向量名.(x,y,z,w) 或者 向量名.(r,g,b,a)
前一個多用於空間位置,前三個分量分別為x,y,z座標,最後一個分量w用於指定該元素是一個點(1)還是向量(0)。而後一種方式多用於顏色向量,其對應的分量分別為紅、綠、藍和透明通道。
矩陣型別
HLSL中的矩陣型別有matrix和matrix
1)matrix型別各分量均為float型別,維數為4×4。
2)matrix
matrix
陣列型別
語法與C++中的相同。例如
int M[4][4];
half a[4];
vector vec[5];
結構體
基本和C++中的一樣,但其中不能有成員函式。下圖便是HLSL中一個結構體的例子。
注意事項
這裡只簡單介紹了HLSL中的基本變數型別和基本用法。