2013年8月29日 星期四

Rendering 3D Anaglyph in OpenGL - 3

since: 2013/08/22
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)看起來如下所示:  

                                                      圖七(a): 單一視錐

                                                      圖七(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): 立體視錐 (靠在椅背上垂直觀看)

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。