update: 2013/08/29
reference:
0. 原文: Rendering 3D Anaglyph in OpenGL
1. I touchs: Rendering 3D Anaglyph in OpenGL - 1
2. I touchs: Rendering 3D Anaglyph in OpenGL - 2
F. OpenGL 攝影機:
1. 剩下唯一要討論的任務是: 如何在 OpenGL 裡設置雙重的攝影機. 在非立體模式,
你只需要一個攝影機, 其觀看的參數由 glFrustum() 或 gluPerspective() 所定義.
所得到的視錐(平截頭體 frustum)看起來如下所示:
圖七(b): 單一視錐(從上方垂直觀看)
2. 然而, 繪製出立體感需要設置雙重的攝影機, 類似以下的狀況:
圖八(a): 立體表現的雙攝影機系統
3. 在這個結構當中, 我們有二個視錐: 一個來自 L 點(提供給左眼), 另一個來自R 點
(提供給右眼). 距離 LR 為兩眼間隔, 所以 L 點跟 R 點分別沿著 X 軸的原點位移
了負 LR/2 與正 LR/2 的量. 觀察力敏銳的讀者, 可能已經注意到上圖的二個視錐,
與之前展示的單一視錐是不同的, 我們並不是將單一視錐沿著 X 軸位移來得到雙
攝影機系統的. 事實上, 上方顯示的這二個視錐是非對稱的(asymmetric), 而單一
視錐是對稱的(symmetric)(p.s.幾何形狀, 請看下二張圖來更加瞭解).
如果這二個視錐是對稱的, 並且在之後作了橫向位移, 它們將不會收斂在一起.
非對稱才會致使這二個視錐在收斂距離處會合. 位在收斂距離上的洋紅色矩形
代表立體上的虛擬螢幕. 任何在虛擬螢幕上的頂點, 顯示上是零視差的. 而接近
或遠離這個距離的頂點, 會產生適量的負或正視差.
4.下面的圖, 顯示從頂部垂直觀看同一個的系統:
圖八(b): 立體視錐 (從頂部垂直觀看)
5. 上方, 可以明顯地看出視錐的不對稱. 並且注意到, 每個視錐的觀看方向是相互
平行的, 同時也與 Z 軸平行, 單一視錐也是一樣. 這是設置一對立體攝影機的正確
方式. 還有另一種設置雙重攝影機的方式稱作: 內八字(toed-in)攝影機, 它採用
對稱的視錐, 但是左右的觀看方向互為一個角度. 這足以說明, 內八字(toed-in)
攝影機的設置是不正確的.
6. 還有另外一張沿著 Z 軸來顯示立體攝影機系統的圖:
圖八(c): 立體視錐 (靠在椅背上垂直觀看)
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。