新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > 虛擬現實中立體顯示技術研究

        虛擬現實中立體顯示技術研究

        作者: 時間:2009-12-23 來源:網絡 收藏

        由此可見,當zp>d時,0Ee,此時為正視差;當zpd時,E0,此時為負視差;而當zp=d時,E=0,此時為零視差。采用雙中心投影算法,設置雙視點就可獲取三維空間中物體的左右眼圖像,從而生成圖像對。

        本文引用地址:http://www.104case.com/article/169422.htm

        4 OpenGL實現
        開放性圖形庫OpenGL(Open Graphic Library)是一個三維計算機圖形和模型庫。它獨立于操作系統和硬件環境,適用于從個人計算機到工作站的廣泛計算機環境。
        OpenGL在三維真實感圖形制作中具有優秀的性能,用該圖形庫不僅能方便地制作出高質量的靜止彩色圖像,還能創造出高質量的動畫效果。借助Windows編程環境還可控制模型的人機交互。由于其開放性和高度的可重用性,目前已成為業界標準。
        4.1 圖像對的繪制
        按上述投影算法計算出立體圖像對后,應用OpenGL繪制立體圖像對,分別用紅、綠兩種顏色繪制右眼和左眼的圖像。以一個變長為10 cm,中心點在原點的正方體為例,設兩視點間距離e為5 cm,投影面距高觀察者d為40 cm,考察正方體的一個頂點(5,5,5),由上述投影算法可得:xr=32 cm,xl=48 cm,yl=yr=4040 cm,zr=zl=d=40 cm對8個頂點分別計算后,連接相應的立體透視投影點,即可得該立方體的立體圖像對。用數組vertex[8][3]存儲頂點,數組translatevertexr[8][3]存儲右眼投影計算后坐標,數組translatevertexl[8][3]存儲左眼投影計算后的坐標,對相應的點進行投影計算:


        使用OpenGL的透視投影變換,需設置前后裁剪面到觀察者的距離及前裁剪面的寬度和高度等。前裁剪面的寬度用該寬度與高度的比值表示,取窗口的寬度和高度之比。
        double Near.Far;//前后裁剪面距觀察者的距離
        int ratio=width/height;//屏的寬和高之比
        ViewHeight2=Near*tan(radians);//計算視野的高度
        ViewWidth2=ViewHeight2*ratio;//計算視野的寬度
        計算右眼的視野范圍;
        left=-ViewWidth2-0.5*e*0.3;
        right=ViewWidth2-0.5*e*0.3;
        投影并繪制模型:
        glFrustum(left,right,bottom,top,Near,Far);
        glDrawBuffer(GL_BACK_RIGHT);//使用右后緩存
        gluLookAt(0+e/2。0,5。0+d/2,0,-5,0,1,0);
        //確定右眼位置
        glColor3f(1.0,0.0,0.0);//用紅色繪制
        draw();//計算立體圖像對并繪制
        同理繪制左眼的圖像,如圖3所示。

        4.2 雙緩存區的使用
        OpenGL提供雙緩存,支持兩個完整顏色緩存的硬件或軟件。繪制一個緩存時,顯示另一個緩存中的內容。每繪制好一幀便交換緩存;這樣剛才被顯示的緩存被用來繪制,而用來繪制的緩存被顯示。這樣,當顯示器刷新時,緩存區進行交換,畫面就不會閃爍。
        OpenGL也支持立體觀察,實現左顏色緩存和右顏色緩存,它們分別用于左立體圖像和右立體圖像。可在初始化時,分別使用參數PFD_DOUBLEBUFFER和PFD_STERE-O_DONTCARE支持立體顯示和雙緩存。使用雙緩存時,通常只繪制后緩存,使用函數glDrawBuffer()還可指定將立體圖像渲染到具體的某個緩存。
        例如,繪制右眼圖像時使用右后緩存區glDrawBuffer(GL_BACK_RIGHT),繪制左眼時使用左后緩沖區glDraw-Buffer(GL_BACK_LEFT)。
        4.3 立體圖像的觀察
        使用簡單的濾光鏡就可觀察有立體感的圖像。其原理是:由于濾光片(實驗中使用紅、綠濾光片)吸收其他光線,只讓相同顏色的光線通過,因此左、右眼各透過不同顏色的光。當使用濾光鏡觀察計算機屏幕上的立體圖像對時,就會看到具有深度感受的圖像。在實驗中發現,刷新頻率對圖像立體效果的形成具有重要作用。刷新頻率過低,由于人眼所維持的圖像已消失,不能得到三維立體感受;刷新頻率過高就會出現一只眼睛可看到兩幅圖像的現象。將顯示的刷新頻率設置合適,在程序中設置圖像刷新頻率設置為50 Hz,利用紅綠濾光鏡觀察模型的立體成像,得到較明顯的立體視覺效果。

        5 結論
        根據立體顯示原理,采用雙目視差算法對物體進行立體顯示,利用OpenGL生成立體圖像對,并借助紅綠濾光眼鏡觀察,得到了較好的立體視覺效果。立體顯示的引入增強了人在虛擬環境中的沉浸感,可廣泛應用于建筑物和視景漫游、虛擬戰爭演練場和各種模擬訓練等多種場合。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临漳县| 福建省| 华阴市| 伊吾县| 武穴市| 墨玉县| 大石桥市| 冷水江市| 西安市| 罗城| 准格尔旗| 东莞市| 阳新县| 宁都县| 阿勒泰市| 天全县| 宿迁市| 大港区| 金川县| 长海县| 攀枝花市| 柘荣县| 呈贡县| 朝阳区| 鄱阳县| 高陵县| 肇州县| 蒙山县| 遂宁市| 藁城市| 广灵县| 阳高县| 绥化市| 司法| 额尔古纳市| 孝昌县| 汝南县| 赣榆县| 大连市| 五家渠市| 新巴尔虎左旗|