怎樣使用HLSL變數?

Tags: 語言, 變數,

HLSL是高階著色語言的簡稱。在進行DirectX程式設計時,我們用它來對頂點進行相關處理。那麼,HLSL與普通C++變數有什麼不同,我們又該怎樣如何使用它呢?

工具/原料

DirextX

數值型別

數值型別即標量型別,在HLSL中,可使用以下數值型別:bool、int、half、float、double。其中half是16 位浮點數。

注意,有些型別可能某些平臺不支援,這時我們用float型別來代替。

怎樣使用HLSL變數

向量型別

HLSL中的內建向量型別有vector和vector 。學過C++的朋友們都知道,後者有點像一個模板型別,這裡的引數T指明瞭各個分量的資料型別,後一個引數n則標識了維數,只能在1到4之間。比如說,我們可以定義一個2D float型別的向量:

vector

怎樣使用HLSL變數

如果我們想要訪問指定向量中的某個分量,可用如下方式來訪問:

向量名.(x,y,z,w) 或者 向量名.(r,g,b,a)

前一個多用於空間位置,前三個分量分別為x,y,z座標,最後一個分量w用於指定該元素是一個點(1)還是向量(0)。而後一種方式多用於顏色向量,其對應的分量分別為紅、綠、藍和透明通道。

怎樣使用HLSL變數

矩陣型別

HLSL中的矩陣型別有matrix和matrix

1)matrix型別各分量均為float型別,維數為4×4。

2)matrix 則可以自己指定各分量型別和維數。例如,定義一個 2×2 整型矩陣:

matrix m2x2;

怎樣使用HLSL變數

陣列型別

語法與C++中的相同。例如

int M[4][4];

half a[4];

vector vec[5];

怎樣使用HLSL變數

結構體

基本和C++中的一樣,但其中不能有成員函式。下圖便是HLSL中一個結構體的例子。

怎樣使用HLSL變數

注意事項

這裡只簡單介紹了HLSL中的基本變數型別和基本用法。

語言, 變數, hlsl函式, hlsl教程, hlsl高階例項精講pdf, cghlsl, hlslshader, hlslclip, hlslglsl, hlslregister, hlsl語法,
相關問題答案