基于OpenGL的時(shí)分立體圖像顯示研究_第1頁
基于OpenGL的時(shí)分立體圖像顯示研究_第2頁
基于OpenGL的時(shí)分立體圖像顯示研究_第3頁
基于OpenGL的時(shí)分立體圖像顯示研究_第4頁
基于OpenGL的時(shí)分立體圖像顯示研究_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于OpenGL的時(shí)分立體圖像顯示研究作者:摘要:本文詳細(xì)討論了時(shí)分式的立體顯示的基本概念、形成條件以及數(shù)學(xué)模型。在此基礎(chǔ)上,編程實(shí)現(xiàn)了基于windows的OpenGL時(shí)分立體顯示,刷新頻率達(dá)到120HZ/s,可產(chǎn)生無閃爍的立體顯示效果,只需要立體眼鏡等配套設(shè)備即可支持,使顯示效果更加逼真。關(guān)鍵詞:OpenGL 視差 時(shí)分 立體顯示Field sequential stereoscopic image display with OpenGLAuthor :Abstract: This thesis particularly introduces the concepts of field-se

2、quential stereoscopic display ,forming condition and mathematical model .On this principle, I programmed field-sequential stereoscopic display based on windows with OpenGL, renovation frequency can be achieved to 120Hz/sec. The stereoscopic display effect is very good and image has no flicker. only

3、need some equipments such as CrystalEyes , than you can get a more reality display.Keywords :OpenGL Parallax field-sequential stereoscopic display目 錄引言 1 第1章 立體顯示技術(shù) 2 1.1 深度信號(hào) 2 1.2 立體視覺概述 2 1.3 視差 21.4 立體視覺顯示方法 2第2章 立體透視攝影圖像生成原理 3 2.1 立體透視投影原理的數(shù)學(xué)描述 3 第3章 軟件編程實(shí)現(xiàn)3.1 系統(tǒng)設(shè)置 5 3.2 實(shí)現(xiàn)原理 6 3.3 編程實(shí)現(xiàn) 6 3.3.1

4、 初始化窗口以支持立體格式 6 3.3.1 寫入各個(gè)立體緩沖區(qū) 6 結(jié)論 7 參考文獻(xiàn) 8 后記 11 附錄A 程序清單 12 附錄B 外文資料翻譯 13 外文資料翻譯原文部分 13 外文資料翻譯譯文部分 13 引言普通照相只能存貯被攝物體光強(qiáng)度的空間分布,不能滿足人們希望在特定環(huán)境下能夠感知真實(shí)3D場(chǎng)景的要求。長(zhǎng)期以來,人們?yōu)閷?shí)現(xiàn)動(dòng)態(tài)三維顯示技術(shù)做了不懈的努力,并在三維顯示方法和系統(tǒng)實(shí)現(xiàn)方面做了不少研究,使得各種三維立體顯示技術(shù)得到長(zhǎng)足的發(fā)展。立體顯示是三維顯示中主要的一類,它是運(yùn)用視差來實(shí)現(xiàn)人眼的深度感度。立體顯示又可分為需要佩帶輔助眼鏡裝置(如濾色眼鏡和液晶光閥眼鏡)的立體顯示和無需佩帶

5、任何輔助眼鏡裝置的自動(dòng)立體顯示。本文主要介紹液晶眼鏡輔助的立體顯示技術(shù),即時(shí)分立體顯示技術(shù)。時(shí)分立體顯示技術(shù),在軍事、CADCAM、工業(yè)生產(chǎn)、模擬和訓(xùn)練、3D顯示與電子游戲、顯微技術(shù)和醫(yī)療等領(lǐng)域已經(jīng)得到廣泛的應(yīng)用,成為當(dāng)前世界上顯示技術(shù)領(lǐng)域研究的一個(gè)熱點(diǎn)。本文所實(shí)現(xiàn)的時(shí)分式立體顯示技術(shù),是根據(jù)人的雙眼視差效應(yīng),利用紅外液晶眼睛,在非常高的頻率輪流遮擋單眼的方法進(jìn)行視覺觀看,如此造成一個(gè)空間虛擬的感覺。第1章 立體顯示技術(shù)在這一章中,先介紹一些有關(guān)立體顯示技術(shù)的背景知識(shí),以便于更好的了解立體顯示技術(shù)以及相應(yīng)的編程的原理。 1.1 深度信號(hào)深度信號(hào)是立體視覺顯示器感知深度的基礎(chǔ)。其重要性就如立體鏡

6、在產(chǎn)生經(jīng)過透視的真正的三維圖像中的作用。這些深度信號(hào)包括明暗、相關(guān)尺寸、插入、材質(zhì)梯度、空中透視、運(yùn)動(dòng)視差和透視等,其中最重要的是透視。包含的深度信號(hào)越多, 圖像將越容易產(chǎn)生立體視覺。明暗是一個(gè)基本的深度信號(hào)。通過明暗處理可以使物體看起來更有立體感,投射陰影會(huì)使物體看起來象靜止在表面上。明亮的物體比灰暗的物體近;色彩明亮的物體看起來比黑的物體近。相關(guān)尺寸相關(guān)尺寸是指出眼睛的晶狀體投射到視網(wǎng)膜上的物體的圖像的尺寸。我們知道,距離越近,物體看起來更大;距離越遠(yuǎn),物體看上去越小。記憶幫助我們判斷常見物體的距離??摧^遠(yuǎn)處的人,給我們的第一感覺是遠(yuǎn)而不是小。插入插入這個(gè)概念是最容易想象的。我們有時(shí)會(huì)有這

7、樣的感覺,正在讀一本書的時(shí),忽然覺書離我們更近了,或者說書就放在它后面的某個(gè)物體的前面,比如說書桌。人無法通過書去看它后面東西的,書就插入在人和遠(yuǎn)處的什么物體之間。材質(zhì)梯度材質(zhì)梯度是唯一的出現(xiàn)代心理學(xué)家提出的深度信號(hào)。這種深度信號(hào)早在文藝復(fù)興時(shí)就被畫家提出并用于作品中。一種結(jié)構(gòu)材料,就像綠草坪都包含一種深度信號(hào),因?yàn)檫@種結(jié)構(gòu)更實(shí)在,給人的感覺像物體更接近觀察者??罩型敢暱罩袝r(shí)是由霧的影響造成的遠(yuǎn)處景物可見度的削弱。通常觀望遠(yuǎn)景將拾取淺藍(lán)色的霧,這是由于大氣干涉引起紅光散射造成的。在大霧彌漫時(shí),遠(yuǎn)處的景物根本無法看到。運(yùn)動(dòng)視差運(yùn)動(dòng)視差這個(gè)深度信號(hào)來自視覺信號(hào)或運(yùn)動(dòng)難過,可以通過物體的轉(zhuǎn)動(dòng)獲得。一

8、個(gè)較為熟悉的例子可以從一輛運(yùn)動(dòng)的小車觀察到,車外的電線桿比遠(yuǎn)處的小山通過的更快。并非所有的圖形合成物都包含運(yùn)動(dòng)視差,但是利用運(yùn)動(dòng)視差可以產(chǎn)生好的深度效果,而不必管旋轉(zhuǎn)軸的空間方位。這種軸向獨(dú)立性說明運(yùn)動(dòng)視差和立體影像是分離的。如果這兩者相關(guān),只有繞垂直軸旋轉(zhuǎn)能產(chǎn)生深度效果,但是事實(shí)上,繞水平軸旋轉(zhuǎn)也有這種效果。之所以指出這點(diǎn)是因?yàn)橐恍┤苏J(rèn)為立體影像與運(yùn)動(dòng)視差是同一個(gè)實(shí)體的表現(xiàn)。運(yùn)動(dòng)視差在旋轉(zhuǎn)體中是一個(gè)很好的深度信號(hào)。透視透視有時(shí)也稱為“幾何”、“直線”、或“投影”透視,它擴(kuò)大了立體深度的范圍。計(jì)算機(jī)生成的有強(qiáng)烈透視感的圖像看起來更深,更給人以立體感。深度信號(hào)深度信號(hào)是用于計(jì)算機(jī)圖形學(xué)上的一個(gè)技

9、術(shù)的名字,深度信號(hào)根據(jù)物體與觀察者之間的距離,按比例減小物體的明亮程度,使物體看起來更有空間的感覺。1.2 立體視覺概述做這樣一個(gè)實(shí)驗(yàn):伸出拇指放在臉前,當(dāng)看拇指時(shí),眼睛會(huì)聚在拇指上,也就是說,兩只眼睛的視軸通過拇指。有很多面部肌肉參與使拇指在兩個(gè)視網(wǎng)膜中心城鄉(xiāng)。如果繼續(xù)將兩眼會(huì)聚在拇指上,注意一下背景,將會(huì)發(fā)現(xiàn)背景成了雙的。利益方面,當(dāng)眼睛會(huì)聚在背景上時(shí),拇指又會(huì)變成雙的。如果能夠采到左右視網(wǎng)膜上物體所稱的兩個(gè)像并以某種方式疊加,將看到兩個(gè)幾乎完全重疊的圖像。而左右視網(wǎng)膜圖像上的對(duì)應(yīng)透視點(diǎn),存在心理學(xué)家所說的視差。這里所說的視差是視網(wǎng)膜視差,與后面談到的視差是由區(qū)別的。視網(wǎng)膜視差是左右視網(wǎng)膜

10、上的圖像的對(duì)應(yīng)點(diǎn)在水平方向上的距離。左右視網(wǎng)膜圖像的各對(duì)應(yīng)點(diǎn)中,眼睛會(huì)聚的兩個(gè)對(duì)應(yīng)點(diǎn)由零視差。視網(wǎng)膜視差的產(chǎn)生源于每只眼睛從不同的觀察點(diǎn)看客觀世界。而眼睛和大腦共同作用的這個(gè)視網(wǎng)膜視差又給人們帶來了一個(gè)單一的視覺世界。成年人的兩眼間的平均距離是6.4厘米。當(dāng)觀察某一個(gè)特定點(diǎn)時(shí),左右眼在目標(biāo)處聚焦,人眼的角度隨其到目標(biāo)點(diǎn)之間的距離變化。眼睛和大腦根據(jù)左右眼圖像的不同決定距離,人的眼睛能夠根據(jù)測(cè)量距離將物體看成三維的。大腦根據(jù)細(xì)微的不同得到信息,對(duì)得到的信息的細(xì)節(jié)解釋使人有距離和深度的感覺。當(dāng)兩副圖像有合適的距離時(shí),就會(huì)有立體的感覺。立體圖像是觀察者在看客觀世界時(shí),左右眼從不同的觀察點(diǎn)所得到的兩幅

11、圖像的一個(gè)綜合體現(xiàn)。人眼和大腦將這兩幅來自客觀世界的圖像合成一幅具有立體深度的圖像,結(jié)果看到一個(gè)單一的圖像,而不是兩個(gè)圖像。因?yàn)榇竽X已將這兩幅圖像完全熔合在一起形成一幅立體圖像,這就比兩幅圖像的直接疊加看起來效果好很多。在客觀世界中觀察一個(gè)實(shí)際物體,在某一時(shí)刻,兩個(gè)不同的圖像進(jìn)入左右眼,人腦通過分析兩幅圖像得到距離和深度。如果實(shí)際物體不存在,可以通過計(jì)算機(jī)生成圖像來虛擬這種立體效果。目前對(duì)立體計(jì)算機(jī)動(dòng)畫的研究主要集中在如何生成有合適距離的圖像序列,以及如何將兩個(gè)圖像序列組合在一起,使觀察者有空間的感覺。1.3 視差當(dāng)我們?cè)诓淮髁Ⅲw眼鏡的情況下直接觀察立體圖像,我們彷佛看到兩幅圖像層疊在一起,當(dāng)

12、刷新率足夠高時(shí),我們將看不到任何閃爍,在左右眼圖像中的相同像點(diǎn)(也稱為同源像點(diǎn))的位置差,就稱為視差。下面將介紹四種典型的視差。零視差左右眼圖像的同源像點(diǎn)落在屏幕的同一位置,即視差值為零。左右眼的視線交于屏幕一點(diǎn)。正視差有一種正視差是左右眼的實(shí)現(xiàn)是平行的,在現(xiàn)實(shí)生活中,這種情況往往發(fā)生在觀察者與被觀察物體的距離較遠(yuǎn)時(shí)。在立體顯示時(shí),當(dāng)兩眼之間距離與視差相等時(shí),產(chǎn)生正視差。任何一種介于零和兩眼間距的視差都可以由CRT顯示并觀察。還有一種正視差是發(fā)散視差。發(fā)散視差 當(dāng)左右圖像的拭擦畫質(zhì)大于兩眼之間距離時(shí)稱為發(fā)散視差,即左右眼視線是發(fā)散的,在現(xiàn)實(shí)生活中,我們觀察一個(gè)物體時(shí),不會(huì)出現(xiàn)這種情況。負(fù)視差

13、兩眼的視線在屏幕之前相交,這種情況被稱為負(fù)視差。這是,屏幕所顯示的物體好像在屏幕的前方,也就是說在觀察者和屏幕之間。1.4 立體視覺顯示方法立體鏡法 把一被攝景物用兩臺(tái)攝影機(jī)同時(shí)拍攝,兩攝像機(jī)鏡頭光軸之間距離為65毫米,男這立體鏡觀看兩個(gè)畫面影像時(shí),就可以看到被拍攝景物的立體圖像了。這種方法在商業(yè)上很難應(yīng)用。這種方法不破壞顏色,也不引起色偏,但是它需要電子線路,生產(chǎn)制造較為復(fù)雜。色差法 把左眼圖像染上紅色,有眼圖像讓染上紅色的互補(bǔ)色,即蘭-綠色,把這兩個(gè)帶顏色的圖像重疊的放映到屏幕上,觀察者左眼戴紅色鏡片,右眼戴綠色鏡片,這是看到的是黑白色的立體影像。這種方法需要增加預(yù)處理的工作量,現(xiàn)在見得比

14、較多的是用于顯示靜止畫面。偏振光法 利用光的偏振理論,在放映機(jī)前加快偏振光濾光片。偏振光濾光片像一把梳子,把向各個(gè)方向振動(dòng)的光波梳去一部分,使剩余的一部分光沿著一個(gè)規(guī)定方向前進(jìn),如果把兩塊偏振方向相同的濾光片擺在光路上,就會(huì)起到阻光的作用。因此,在左眼光路裝一個(gè)濾光片,把右眼光線濾掉,在右眼光路裝一個(gè)濾光片,將左眼光線濾掉,觀察者戴上這樣的偏光眼鏡,就可以保證左右眼同時(shí)看到相應(yīng)的左右眼影像,得到彩色的立體效果。光柵法光柵法即柱鏡法,它的基本原理是把左右眼兩個(gè)影像分成垂直的細(xì)長(zhǎng)條,再把這些條交錯(cuò)編線成一個(gè)集合畫面,這個(gè)合成畫面實(shí)際上是由許多條組成。每隔一個(gè)線條構(gòu)成一個(gè)集合畫面,形成相對(duì)應(yīng)的立體影

15、像。當(dāng)把一個(gè)柱狀屏幕放在合成畫面前面,就產(chǎn)生出選擇效果。交變畫幅法 即用一套分時(shí)系統(tǒng)交替顯示對(duì)應(yīng)于左右眼圖像,并且把代表左右眼的圖像分別送入相應(yīng)的那只眼睛里,從而在觀察者的意念中產(chǎn)生具有縱深立體感的畫面。這種方法現(xiàn)在用的比較多,而且有較多的硬件支持,象紅外液晶眼鏡等。本系統(tǒng)就是采用這種方法來顯示立體圖像。激光全息攝影法 這是一種新的產(chǎn)生立體效果的方法,它的原理是被攝體被光源照射后,被攝體 每個(gè)點(diǎn)同樣是一個(gè)光源,它以球面波的形式向四面八方輻射,這些反射波傳到人眼里,人們才能看到物體。如果采用一種方法,使這些反射波“保留”在空間,而把被攝體拿掉,人們?nèi)匀豢梢钥吹皆瓉淼谋粩z體第2章 立體透視攝影圖像

16、生成原理在本章,將介紹立體透視投影圖像的基本概念和生成原理。把三維物體變成二維圖形的表示過程為投影變換,根據(jù)投影中心和投影平面之間的距離不同,投影可以分為平行投影和透視投影。平行投影的投影中心與投影平面的距離為無窮大。而對(duì)透視投影而言,這個(gè)距離是有限的。2.1立體透視投影原理的數(shù)學(xué)描述 將不同的圖像材料分別放置入左右眼緩沖區(qū),經(jīng)透視投影,將產(chǎn)生一個(gè)無論在幾何外觀上還是感覺上都非常好的立體效果。一個(gè)高質(zhì)量的立體圖像,都包括兩個(gè)立體部分,這兩部分都是透視投影,且它們的投影中心(攝像機(jī))在位置上平行對(duì)稱。從一個(gè)簡(jiǎn)單的非立體投影的數(shù)學(xué)模型入手。假設(shè)攝像機(jī)位于z軸的正半軸的點(diǎn)( 0 ,0 ,d )處,d

17、是攝像機(jī)到x-y平面的距離 ,點(diǎn)(x,y,z)投影到x-y平面為:( 方程1) 圖1兩點(diǎn)的透視投影下面說明計(jì)算機(jī)產(chǎn)生立體圖像的基本幾何模型。兩攝像機(jī)的軸間距是c,由于兩個(gè)攝像機(jī)之間存在水平距離c,故它們將產(chǎn)生兩幅不同的透視投影圖。點(diǎn)(x,y,z)經(jīng)左攝像機(jī)投影的位置為:(方程2) 點(diǎn)(x,y,z)經(jīng)右攝像機(jī)投影的位置為:(方程3) 在一個(gè)立體顯示系統(tǒng)中,如果一個(gè)投影物是疊加在其他投影之后,這將導(dǎo)致任意點(diǎn)出現(xiàn)光學(xué)家稱之的“負(fù)視差” ,也就是說它會(huì)出現(xiàn)在顯示屏的前面。反之,如果左攝像機(jī)看到的投影出現(xiàn)在右攝像機(jī)看到的投影的左側(cè),將出現(xiàn)“正視差” ,也就是說該點(diǎn)看上去好像位于顯示屏里面的某處。當(dāng)左右投

18、影完全重合時(shí)就會(huì)出現(xiàn)“零視差”,“零視差”的景物投影在顯示屏表面上。圖2體現(xiàn)了正視差和負(fù)視差的效果。 圖2:視差效果一般的,一個(gè)平衡的很好的,而且看上去很舒服的立體圖像將同時(shí)利用正負(fù)視差,一些三維場(chǎng)景就投影到零視差或接近零視差。但是,利用方程式2、3來計(jì)算一對(duì)立體投影時(shí),所有可能的三維點(diǎn)將投影到負(fù)視差區(qū),而所有的負(fù)視差都使觀看者感到不舒服。對(duì)于上述問題的解決僅需將左攝像機(jī)投影值沿x軸左移,右攝像機(jī)投影值右移。如果以原攝像機(jī)間隔c的一半來移動(dòng)投影點(diǎn),經(jīng)幾何作圖后,原來的投影平面將精確位于零視差平面。對(duì)左眼,(方程4)對(duì)右眼,(方程5)利用方程式4、5式計(jì)算出來的投影被稱為“平行軸不對(duì)稱平截面透視

19、投影”。注意,即使先沿x軸的一個(gè)方向移動(dòng)場(chǎng)景,再沿x軸的相反方向移動(dòng)場(chǎng)景的投影,投影軸,即兩個(gè)攝像機(jī)的方向矢量仍然保持平行。最后一步移動(dòng)投影使得平行透視投影的截面不對(duì)稱,意味著左、右攝像機(jī)的透視投影能很好的平衡視差效果,使合成結(jié)果更添立體感。小結(jié) : 本章中介紹了立體透視投影圖像的基本概念和生成原理。從數(shù)學(xué)模型的角度對(duì)立體透視投影圖像進(jìn)行了分析。第3章 軟件編程實(shí)現(xiàn) 在本章,將進(jìn)行軟件編程以實(shí)現(xiàn)圖像的時(shí)分立體顯示。這里用到了Visual C+6.0的編程環(huán)境,使用OpenGL(開放式圖形界面)技術(shù),它是由Silicon Graphics公司(即SGI)開發(fā),能夠在windows 95、wind

20、ows NT、Macos、OS/2、以及unix上應(yīng)用的API。它除了提供許多個(gè)運(yùn)算功能外,也提供了不少圖形處理功能。實(shí)現(xiàn)編程所采用的具體開發(fā)環(huán)境及硬件選擇如下:windows xp 操作系統(tǒng)Visual C+6.0 開發(fā)環(huán)境NVIDIA Quadro FX 3400OpenGLCrystalEyes立體眼鏡、紅外發(fā)射器3.1 系統(tǒng)設(shè)置在進(jìn)行程序代碼編寫之前,首先需要在windows xp環(huán)境下進(jìn)行立體顯示的設(shè)置,具體實(shí)施步驟如下:1.安裝立體驅(qū)動(dòng)程序,本實(shí)驗(yàn)中安裝的是91.31版本。2.重啟計(jì)算機(jī),改變顯示設(shè)置為80060065536色,64048065536色,或640480色。并把刷新頻

21、率定為100Hz或者更高。3.返回“控制面板”,選擇“顯示”,然后是“Configuration”,在對(duì)話面板中選擇“STEREO”,然后單擊“OK”,重啟計(jì)算機(jī)。4.運(yùn)行一個(gè)簡(jiǎn)單的立體測(cè)試程序,以檢查是否設(shè)置正確。5.如果經(jīng)過上述步驟,還未得到立體工作模式,檢查一下所有的硬件連接。3.2 實(shí)現(xiàn)原理要編程實(shí)現(xiàn)時(shí)分立體顯示主要采取的步驟包括以下幾步:為運(yùn)行安裝立體設(shè)備2 要求圖形硬件支持立體緩沖區(qū)3 能夠使立體緩沖區(qū)在windows中運(yùn)行4 寫到各個(gè)緩沖區(qū)中三維場(chǎng)景的時(shí)分立體顯示主要是通過顯示程序控制顯示卡和液晶眼鏡的同步來實(shí)現(xiàn)的。具體實(shí)現(xiàn)是這樣的:顯示卡的緩存分為四個(gè)部分,分別是左眼前臺(tái),左眼

22、后臺(tái),右眼前臺(tái),右眼后臺(tái)。“左眼”和“右眼”之間有一個(gè)距離。假設(shè)顯示卡控制顯示器的場(chǎng)頻是120Hz,那么每秒鐘“左眼”看到的圖像出現(xiàn)在顯示器上60次,“右眼”看到的圖像也出現(xiàn)在顯示器上60次。由于“左眼”看到的圖像和“右眼”看到的圖像每隔一次出現(xiàn)在顯示器上,所以顯示器每次刷新的圖像信息只是四部分緩存中的一部分。當(dāng)“左眼”看到的圖像出現(xiàn)在顯示器上時(shí),顯示卡控制液晶眼鏡的左鏡片打開,右鏡片閉合,人就只通過左眼看到顯示器上的圖像;當(dāng)“右眼”看到的圖像出現(xiàn)在顯示器上時(shí),顯示卡控制液晶眼鏡的右鏡片打開,左鏡片閉合,人就只通過右眼看到顯示器上的圖像。由于視覺暫留,人好像是同時(shí)接受到了“左眼”和“右眼”的信

23、息,在視網(wǎng)膜上就形成了視差,于是在人的大腦里便形成了關(guān)于物體的立體圖像。3.3 編程實(shí)現(xiàn)3.3.1初始化窗口以支持立體格式為 了初始化程序以支持立體緩沖,圖像窗口必須調(diào)用windows API函數(shù)SetPixelFormat():要注明PFD_STEREO屬性。PIXELFORMATDESCRIPTOR pfd;int iFormat;hDC=GetDC(hWnd);ZeroMemory(&pfd,sizeof(pfd); pfd.nSize=sizeof(pfd);pfd.nVersion=1;pfd.dwFlags= PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPE

24、NGL | PFD_DOUBLEBUFFER |PFD_STEREO;pfd.cColorBits = 32;pfd.cDepthBits = 32; pfd.iLayerType = PFD_MAIN_PLANE;iFormat = ChoosePixelFormat(hDC, &pfd); SetPixelFormat(hDC, iFormat, &pfd);hRC=wglCreateContext(hDC);wglMakeCurrent(hDC,hRC); 只有當(dāng)系統(tǒng)已經(jīng)有一個(gè)有效的設(shè)備句柄時(shí),函數(shù)SetPixelFormat()才可以被調(diào)用。注意:對(duì)于任意一個(gè)指定的窗口,Microso

25、ft Windows只允許調(diào)用一次SetPixelFormat()函數(shù)。對(duì)于以后的SetPixelFormat()函數(shù),該窗口會(huì)忽略而不去調(diào)用。所以PFD_STEREO屬性必須在第一次調(diào)用函數(shù)SetPixeIFormat()時(shí)進(jìn)行設(shè)定。如果用戶的圖形卡不支持立體緩沖或者尚未設(shè)置好,則調(diào)用函數(shù)SetPixelFormat()設(shè)定的PFD_ STEREO屬性無效。3.3.2寫入各個(gè)立體緩沖區(qū) OpenGL中的glDrawBuffer()函數(shù)允許規(guī)定緩沖區(qū)的結(jié)果并且可以直接賦值。當(dāng)不支持雙緩沖區(qū)的時(shí)候,可以調(diào)用“后緩沖區(qū)”(glDrawBuffer(GL_BACK);)和“交換緩沖區(qū)“(wg1Swa

26、pLayerBuffers(hdc,WGL_SWA_MAIN_PLANE);),可以將后緩沖區(qū)和前緩沖區(qū)互換,這樣就可以產(chǎn)生視覺效果。一旦使SetPixelFormat()初始化窗口使它能夠支持立體緩沖區(qū),以使用GL_BACK_LEFT下函數(shù)或者GL_BACK_RIGHT函數(shù)來規(guī)定視圖緩沖區(qū),這將導(dǎo)致OpenGL視圖出現(xiàn)在某一個(gè)人的眼睛的視圖緩沖區(qū),畫完左后和右后緩沖區(qū)以后。就可以使用wglSwapLayerBuffers()函數(shù)來將后緩沖區(qū)的內(nèi)容換到前緩沖區(qū),以下是把左右眼的圖像分別寫入左右緩沖區(qū)中去的代碼:/清后臺(tái)緩沖區(qū)glDrawBuffer(GL_BACK);glClearColor(

27、0.2f,0.2f,0.2f,0.0f);glClear(GL_COLOR_BUFFER_BIT|GL_ DEPTH_ BUFFER_ BIT);/顯示左眼圖像glDrawBuffer(GL_BACK_LEFT):glPixelzoom(Xzoom,Yzoom);glRasterPos2d(XposLeft,YposLeft);glDrawPixels(ImgWidthLeft,ImgHeightLeft,GL_RGB,GL_UNSIGNED_ BYTE,ImageLeft);glClear(GL_ DEPTH_BUFFER_BIT);/顯示右眼圖像glDrawBuffer(GL_BACK_R

28、IGHT);glPixelzoom(Xzoom,Yzoom);glR asterPos2d(Xpos,Ypos);glDrawPixels(ImgWidth,ImgHeight,GL_RGB,GL_UNSIGNED_BYTE,ImageRight);/頁面反轉(zhuǎn)g1Flush();BOOL bSuccess=SwapBuffers (hdc);上面的代碼可以看出我們可以使用glDrawBuffer(GL_BACK),立刻調(diào)出左后和右后緩沖區(qū),也可以使用glDrawBuffer()直接寫入左前和右前緩沖區(qū)(GL_FRONT_LEFT和GL_FRONT_RIGHT)。小結(jié):在本章中,我們利用Open

29、GL技術(shù),通過編程實(shí)現(xiàn)了圖像的時(shí)分立體顯示,在100Hz的顯示器刷新率下,圖像顯示無任何閃爍感。在立體眼鏡的支持下,可以獲得很強(qiáng)的立體真實(shí)感。結(jié)論論文的結(jié)論是最終的、總體的結(jié)論,不是正文中各段的小結(jié)的簡(jiǎn)單重復(fù)。結(jié)論應(yīng)該準(zhǔn)確、完整、明確、精練。*注結(jié)論格式:?jiǎn)纹鹨豁?.結(jié)論:標(biāo)題黑體三號(hào)字,居中2.清單正文為小四號(hào),宋體,行距24磅,間距:段前0.5行,段后0行。 參考文獻(xiàn)1 廖朵朵:OpenGL三維圖形程序設(shè)計(jì),北京,星球地圖出版社。2劉長(zhǎng)松(譯):3D圖形編程指南,西北工業(yè)大學(xué)出版社,1998-1999年。3 Writing Stereoscopic Software for stereo

30、graphics systems using MicrosoftWindowsOpenGL,By Bob Akka 1999。4 Adding Stereo Support to Graphics Board Subsystems,By Bob Akka and Jeff Haln on 1999。5 Calculating Stereo Pairs,By Paul Bourke,19996 3D Stereo Rendering Using OpenGL (and GLUT) ,By Paul Bourke,2002。7 Advanced Graphics Programming Using

31、 OpenGL,By Ganesh Rao,2005。8 Stereo Rendering: An Overview, By Jamie Brettle,2005。9 三維立體顯示技術(shù)研究新進(jìn)展, 鄭華東,2008。后記整個(gè)畢業(yè)設(shè)計(jì),從08年12月份就開始了,在老師的指導(dǎo)下,首先到圖書館借閱資料,了解了整個(gè)畢設(shè)的基本流程,從而著手于自己的畢設(shè)。第一個(gè)月,首先學(xué)會(huì)的是如何查找資料,通過關(guān)鍵字查找,從現(xiàn)存的各種相關(guān)網(wǎng)站、搜索引擎、論壇、數(shù)據(jù)庫找到自己所需要的文獻(xiàn)。由此得到的文獻(xiàn),相關(guān)程度不同,這時(shí)候需要細(xì)讀查找到的每篇文獻(xiàn)。在我查找到的文獻(xiàn)中,英文資料居多,這就需要在加深對(duì)專業(yè)詞匯的了解和學(xué)習(xí)。與

32、此同時(shí),由于我的論文涉及到編程,也就開始了在VC+下的OpenGL基本編程的學(xué)習(xí)。第二個(gè)月,在大量資料的支撐下,對(duì)畢設(shè)的主題-時(shí)分立體顯示有了深刻的了解,包括其原理及其實(shí)現(xiàn),于是進(jìn)行了相關(guān)文獻(xiàn)的翻譯和編程。第一個(gè)調(diào)試的程序是色差式的立體顯示。色差式較時(shí)分式編程容易些,但是程序模塊相同,可以通過這個(gè)程序熟悉所要使用的函數(shù)以及格式。通過紅綠眼鏡,可以觀察到一個(gè)旋轉(zhuǎn)的立體茶壺。第三個(gè)月,主要解決時(shí)分立體顯示的編程問題。這個(gè)過程是漫長(zhǎng)的,需要耐心的。起初,運(yùn)行的每個(gè)程序,編譯通過,但是窗口總顯示:GLUT:Fatal error in (unamed):pixel format with necess

33、ary capabilites not found.這是像素格式的問題。通過請(qǐng)教老師,同時(shí)通過網(wǎng)上查找相關(guān)問題的解決方案,發(fā)現(xiàn)關(guān)于入口函數(shù)。Win32 application是運(yùn)行在windows上的32位應(yīng)用程序,入口函數(shù)是WinMain,而console則是運(yùn)行在dos上的程序,入口函數(shù)為main。因此,當(dāng)選用WinMain位入口函數(shù)后,就不再出現(xiàn)這個(gè)問題了。經(jīng)過老師的指導(dǎo),最后完成了我的畢設(shè)。附錄A 程序清單*注程序清單格式:?jiǎn)纹鹨豁?.程序清單:標(biāo)題黑體三號(hào)字,居中2.清單正文為小五號(hào),宋體,行距15磅附錄B 外文資料翻譯外文資料翻譯原文部分:文章出處:xxx外文資料翻譯譯文部分:文章出處:xxx*注:1.外文資料翻譯原文部分:(*黑體小四號(hào),左頂格*)2. 外文資料翻譯原文應(yīng)為復(fù)印稿或打印稿,如是打印稿,字體為Times New Roman小四號(hào),行距24磅,間距:段前2.5磅,段后0行(0磅)3. 文章出處:xxx (* “文章出處:”為黑體小四號(hào),“xxx”宋體小四號(hào),右頂格*) 4.外文資料翻譯譯文部分:(*黑體小四號(hào),左頂格*)(*外文資料翻譯譯文

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論