攝像機 觀察矩陣與取景變換

2021-06-19 07:25:24 字數 991 閱讀 2627

重看dx龍書,發現之前想不通的地方居然一下就懂了,可能是我太笨,把一些簡單問題搞複雜了。

本文記錄的是我對取景變換的一些心得。

首先要弄清楚相機代表什麼

其實它就是我們的眼睛,因為最終繪製出來的東西,就是相機視野中的物件。

取景變換,就是要把物體從世界座標系變換到觀察座標系(即相機空間)中來。取景變換可以分為兩個步驟:

1、在世界座標系中使所有物件跟著相機平移,將相機移至座標原點。注意,是使所有物件跟著相機平移。

2、使所有物件跟著相機旋轉,使得相機觀察方向為z軸正方向,並且相機的up向量指向y軸正方向。

由於是所有物件隨著相機一起移動,那物件相對於相機的位置,在移動後和移動前是一致的,那麼為什麼要還要進行取景變換呢?

答案是為了方便固定渲染流水線的下乙個步驟,即投影變換。

因為投影變換中要進行線性插值,將相機的視域體(frustum)變成乙個叫做規則觀察體cvv(canonical view volume)的長方體,而後者非常便於裁剪。

關於透視投影變換,請參考《深入探索透視投影變換(續)》。

第2步中,之所以使相機的up向量指向y軸正方向,是因為up向量指向y軸負方向時,相機的觀察方向也是z軸正方向,但觀察到的物件是顛倒的。

這就是d3dxmatrixlookatlh函式中的基準向量引數傳遞(0,1,0)的原因。

講過這兩步仿射變換,物件的座標已經與其在世界座標系中的座標不同了,新的座標系就是觀察座標系。

在觀察座標系中,相機的座標與觀察方向是固定的,而其他物件是可以移動的。但是現實中人是可以移動的,人可以走近乙個物體以觀察的更仔細,也可以轉身看到背後的世界。而觀察座標系中的固定相機是無法完成這些的,那怎麼辦?

答案就是實現乙個攝像機類。這個攝像機類有4個向量成員:位置向量、up向量、right向量以及look向量。這個相機可以沿著up向量、right向量和look向量平移,也可以繞著它們旋轉。在這個相機運動之後(其他物體不隨相機運動),可以根據這四個向量計算出乙個觀察矩陣,將它設為d3d的觀察矩陣,就等於實現了相機的移動。

影視專業攝像機與DV攝像機的區別

dv攝像機與影視專業 攝像機相比,特別是與廣播級攝像機或者是 高畫質攝像機相比較,除了體積小 便宜以外,還有解析度較低等區別。我個人接觸最多的就是 松下180a廣播級 攝像機,體積也較小,較低,輕便靈活,適合普通的 影視愛好者。而betacam sp dv cam和dvc pro則非常昂貴,也笨重,...

攝像機中的基礎矩陣

基礎矩陣也叫做基本矩陣。基礎矩陣描述的是影象點與其對應極線的對應關係。也就是說基礎矩陣是極幾何的代數表示。基礎矩陣的推導方式比較難看懂。具體的可以參考吳福朝的計算機視覺中的數學方法。這本書很不錯,特別推薦。在理解基礎矩陣之前要先搞懂攝像機投影關係和極幾何的知識。如上圖,i,i 為兩個攝像機的成像平面...

fps攝像機的筆記 矩陣空間的變換流程

以下為這篇文章的一些思考和筆記 先定義乙個點為相機位置,然後定義乙個想要觀察的點,兩者相減為光線方向,為什麼叫光線方向,因為現在設定是相機只能接受到跟光線方向平行的光,所以螢幕成像是沒有聚焦的感覺,人的眼睛有晶狀體所以可以接受到更大範圍的光,這跟轉移到裁減空間的矩陣是有關係的 然後可以叉乘出righ...