頂點著色器 經過的空間變換

2021-07-23 05:36:05 字數 790 閱讀 5272

基本功能:就是把模型的頂點座標從模型空間轉換到齊次剪裁空間中。渲染過程可以理解成把乙個乙個頂點記過層層處理最終轉化到螢幕上的過程。

模型空間也叫作 object space和local space(區域性座標),也就是模型在移動旋轉的時候,模型空間也會跟著移動旋轉。

unity中,世界空間使用的是左手座標系,如果乙個模型沒有父節點,transform屬性就是模型在世界空間中的位置

頂點變換的第一步就是將頂點座標從模型空間變換到世界空間中,這個變換也叫作模型變換(model transform) 

比如求乙個模型的手指在世界空間中的位置(已知模型中心在世界空間中位置,手指在模型空間中位置,通過矩陣可以求出手指在世界空間中位置),可以通過矩陣變換 p(world) = m(modsl)p(modsl)

觀察空間也叫作攝像機空間(camera space)。觀察空間可以認為是模型空間的乙個特例-在所有模型中有乙個特殊的模型即攝像機為中心的空間

通過視錐體進行剪裁,視錐體設計兩種投影型別-一種是正交投影(orthographic projection),一種是透視投影(perspective projection),透視投影是乙個金字塔形,正交投影是乙個長方體。

觀察空間(三維)到螢幕空間(二維)的轉換要經過投影操作(projection),進過投影變換後,我們可以進行剪裁操作,當完成所有的剪裁操作之後,就把視錐體投影到螢幕空間中。進過這個變換我們得到真正的畫素位置。而不是虛擬的三維座標。 

在unity中,從剪裁空間到螢幕空間的轉換是由unity幫我們完成的,我們的頂點著色器只需要把頂點轉換到剪裁空間中,然後unity自動轉換到螢幕空間。

頂點著色器 經過的空間變換

基本功能 就是把模型的頂點座標從模型空間轉換到齊次剪裁空間中。渲染過程可以理解成把乙個乙個頂點記過層層處理最終轉化到螢幕上的過程。模型空間也叫作 object space和local space 區域性座標 也就是模型在移動旋轉的時候,模型空間也會跟著移動旋轉。unity中,世界空間使用的是左手座標...

頂點著色器 片段著色器

一 著色器 著色器只是一種把輸入轉化為輸出的程式。著色器也是一種非常獨立的程式,因為它們之間不能相互通訊 它們之間唯一的溝通只有通過輸入和輸出。在最簡配置下,至少都得有兩個著色器 乙個叫頂點著色器 vertex shader 它將作用於每個頂點上 另乙個叫片段著色器 fragment shader ...

HLSL頂點著色器

1.在文字檔案裡編寫頂點著色器 hlsl語言 2.編譯著色器 d3dxcompileshaderfromfile 3.建立頂點著色器 createvertexshader 4.獲取hlsl語言中變數控制代碼 getconstantbyname 5.根據控制代碼給hlsl語言中的變數傳值 id3dxc...