一、座標空間變換,這個變換過程暫時利用矩陣乘法的幾何意**釋,具體驗證以後補充
二、頂點的座標空間變換過程:
1、模型空間:(物件空間,區域性空間)
①unity約定:在模型空間使用的左手座標系,xyz分別對應著右上前。
②頂點著色器中訪問到模型的頂點資訊,其中每個頂點的座標都是相對於模型空間中的原點。
2、世界空間:
①unity約定:使用左手座標系,但它的xyz軸是固定不變的。
②unity中,每個子物體的世界座標空間是父物體的模型座標空間。
③模型變換:頂點座標從模型空間變換到世界空間中(想象剛開始模型座標系和世界座標系重合,此時模型座標系數值相當於世界座標系初始值,然後在世界座標系下,物體發生位移,然後計算模型變換)
3、觀察空間
①unity約定:使用右手座標系,xyz分別對應著右上後。
②觀察變換:將頂點座標從世界空間變換到觀察空間中。(思路,想象乙個空間動,另乙個空間不動,則另乙個空間,則不動空間到動空間)
4、裁剪空間(齊次裁剪空間)
①裁剪矩陣:從觀察空間變換到裁剪空間的矩陣。(投影矩陣)
②裁剪空間的目標是能夠方便地對渲染圖元進行裁剪;決定這個空間的是視錐體。
③左手座標系
④視錐體有兩種型別:涉及兩種投影型別
ⅰ、透視投影:乙個頂點由觀察空間變換到裁切空間公式:
ⅱ、正交投影:
ⅲ、兩種矩陣中注意:
**fov:視錐體豎直方向的張開角度;aspect:攝像機橫縱比;far和near:視錐體遠近裁剪平面;size:視錐體豎直方向上高度一半**
**均以如下不等式判斷乙個變換後的頂點是否位於視錐體內**
**⑤、投影矩陣兩個目的:
ⅰ、:雖然名字上都有投影二字,但是沒有真正的投影,只是為投影工作做準備。可以讓頂點的w值具有特殊意義
ⅱ、對xyz分量進行縮放。
5、螢幕空間
①進行真正的投影工作,得到真正的畫素位置。
②左手座標系
③流程:
ⅰ、齊次除法(透視除法):用齊次座標系的w分量除以xyz分量。在opengl中,這一步得到的座標叫做歸一化的裝置座標(ndc)。
經過透視投影變換後的裁剪空間,經過齊次除法會變換到乙個立方體內,按照opengl傳統,立方體各分量範圍[-1,1],按照directx,各分量範圍[0,1],unity選擇了opengl範圍。對於正交投影,齊次除法不會對頂點座標產生影響。
ⅱ、螢幕對映:unity中,螢幕空間左下角畫素座標(0,0),右上角畫素座標(pixelwidth,pixelheight),過程中x,y分量參與直接運算,z分量用於深度緩衝,w分量沒有被拋棄,例如後期進行透視校正插值。
④在unity中,從裁切空間到螢幕空間的轉換是由unity幫我們完成的,我們的頂點著色器只需要把頂點轉換到裁剪空間即可。
unity螢幕空間座標shader
螢幕座標效果不受物體在空間位置的影響,只受到物體本身和視口的影響,有時候可以做一些特殊效果 比如2d遊戲平鋪紋理,除錯螢幕位置,螢幕特效等等 下面是根據官方例子修改的 shader unlit show uvs subshader sampler2d maintex struct ccc v2f v...
OSG數學基礎 座標系統
座標系是乙個精確定位物件位置的框架,所有的圖形變換都是基於一定的座標系進行的。三維座標系總體上可以分為兩大類 左手座標系和右手座標系。常用的座標系 世界座標系 物體座標系和攝像機座標系。世界座標系 世界座標系是乙個特殊的座標系,它建立了描述其他座標系所需要的參考框架。從另一方面說,能夠用世界座標系來...
數學基礎I 向量和座標
最基本的,我們都知道在數學上常常用座標表示空間中的某個目標點,該目標點在空間座標軸投影的位置即確定了目標點的位置。因此向量也可以用來表示描述這個目標點。什麼是向量?向量就是有大小,有方向的量。目標點相對於空間座標系原點的距離即是向量的大小,方位即是向量的方向。向量的基本運算有1 加減,2 範數和模,...