從渲染過程來理解opengl座標系和座標變換投影

2021-09-13 10:11:39 字數 1384 閱讀 7217

世界座標系,以人站立的位置為原點,右方為x 正方形,頭頂為y的正方形,z的正方形為腦後(即人看向z的負方向)。如下圖

因此,在用opengl繪製的影象時,載入的模型檔案其實都是在原點的位置,在繪製遊戲或者模型的時候就要將這些模型放置在不同的世界座標系位置上,即稱為絕對座標

絕對座標就是我們要繪製的物體在世界座標系裡的座標位置。

在繪製模型的時候,我們首先得設定模型的具體座標,即世界座標系的位置。這裡和我們數學裡用到的座標系不一樣,需要注意z和y的位置是相反的,很容易在設定位置的時候設定錯誤。

相機就類似與我們人的眼睛,三維世界那麼大,我們人眼只能站在乙個準確的地方去看這個世界。那人眼在看物體的時候,隨著聚焦,就會有個目標點,這個目標就會焦點也成為視點

因此opengl要渲染物體的時候,首先就得確定相機 和 視點的位置,即在世界座標系裡面的座標。

螢幕座標是以螢幕橫方向為x,豎直方向為y,從螢幕指向外的方向為z方向。其實和世界座標有著相同的方法,例如,我們對著電腦螢幕,電腦的橫方向是x,y方向(朝上),z方向是從螢幕指向我們。當然我們這裡不是需要知道座標系規則,而是世界座標系是如何變成螢幕座標系的呢。這裡就需要理解正交投影

請原諒我的畫功,勉強看看吧。相機和視點連線構**的視線視角近平面遠平面為相機能看到的最近和 最遠的距離。這裡只要在原平面和近平面之間的物體都會投影在近平面上,是可見的,成為視景體,這裡近平面可以理解為我們的螢幕。

這裡大家思考下,有了視線,我們知道了z座標軸的方向,那麼x、y的方向如何確定呢,因此這裡需要設定我們頭頂的向量,這裡頭頂指的是向上的向量,利用向上的向量  up 和 視線向量(z軸) ,2條直線構建乙個平面。垂直這個面的方向為 x軸 ,再利用x軸和 視線軸 (z軸)叉乘就可以得到y軸座標。如下圖,再次請大家見諒,畫功太差。

得到了螢幕座標系後,就需要將世界座標系中的點 投影到 螢幕座標系中,然後利用中交投影,將場景中的點投影到螢幕 ,就完成了我們的渲染。

如果還是不了解,可以看接下來的,用glm設定projectmatrix,viewmatrix,modelmatrix來完成模型渲染,從**角度來理解吧。

從渲染管線理解Shader

一 cpu 在unity的執行過程中,cpu的作用就是載入模型,並把模型通過meshrender這個元件渲染出來。那麼實質上meshrender元件的作用就是將模型的頂點資訊,uv資訊,法線等資訊傳遞給gpu。二 gpu 渲染管線 不了解渲染管線可以先看 這裡實際上是乙個補充 頂點著色器 光柵化 片...

從輸入url到頁面渲染出來過程

在瀏覽器輸入url後的訪問 url的組成協議 網域名稱 有時候也是ip,埠號 數字表示,若為http的預設值 80 可省略 路徑 以 字元區別路徑中的每乙個目錄名稱 查詢引數 get模式的窗體引數,以 字元為起點,每個引數以 隔開,再以 分開引數名稱與資料,通常以utf8的url編碼,避開字元衝突的...

瀏覽器的渲染過程 或者從URL到頁面渲染的過程

從url到頁面渲染的過程 1 當使用者輸入url提交到dns網域名稱解析 找到真正的ip 向伺服器發起請求 2 伺服器進過解析交給後台處理完成返回資料,瀏覽器接受資料檔案 html js css 等資源 3 瀏覽器載入到資源 html css js 等 後進行語法解析建立相應的內部資料結構 dom ...