




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第二章三維觀察1. 三維觀察坐標(biāo)系1觀察坐標(biāo)系為了在不同的距離和角度上觀察物體,需要在用戶坐標(biāo)系下建 立觀察坐標(biāo)系Xv,yv,Zv(通常是右手坐標(biāo)系)也稱(View Reference Coordinate)o如下圖所示,其中,點(diǎn)p()(x0, y0, z0)為觀察參考點(diǎn)(View Reference Point),它是觀察坐標(biāo)系的原點(diǎn)。圖1.1用戶坐標(biāo)系與觀察坐標(biāo)系依據(jù)該坐標(biāo)系定義垂直于觀察坐標(biāo)系zv軸的觀察平面(viewpalne),有時(shí)也稱投影平面(projection plane)o圖1.2沿z、軸的觀察平而1.2觀察坐標(biāo)系的建立觀察坐標(biāo)系的建立如下圖所示:圖1.3法矢量的定義觀察平面
2、的方向及Zv軸可以定義為觀察平面(view plane)N法矢量N:在用戶坐標(biāo)系中指定一個(gè)點(diǎn)為觀察參考點(diǎn),然后在此 點(diǎn)指定法矢量N,即乙軸的正向。法矢量V:確定了矢量N后,再定義觀察正向矢量V,該矢量 用來建立為軸的正向。通常的方法是先選擇任一不平行于N的矢量 V,然后由圖形系統(tǒng)使該矢量V投影到垂直于法矢量N的平而上, 定義投影后的矢量為矢量Vo法矢量U:利用矢量N和V,可以計(jì)算第三個(gè)矢量U,對應(yīng)于 Xz軸的正向。的指定視圖投影到顯示設(shè)備表面上的過程來處理對象的描述。2. 世界坐標(biāo)系在現(xiàn)實(shí)世界中,所有的物體都具有三維特征,但是計(jì)算機(jī)本身 只能處理數(shù)字,顯示二維的圖形,將三維物體和二維數(shù)據(jù)聯(lián)系到
3、一起 的唯一紐帶就是坐標(biāo)。為了使被顯示的物體數(shù)字化,要在被顯示的物 體所在的空間中定義一個(gè)坐標(biāo)系。該坐標(biāo)系的長度單位和坐標(biāo)軸的方 向要適合被顯示物體的描述。該坐標(biāo)系被稱為世界坐標(biāo)系,世界坐標(biāo) 系是固定不變的。OpenGL中世界坐標(biāo)用來描述場景的坐標(biāo),Z+軸垂直屏幕向外, X+從左到右,Y+軸從下到上。世界坐標(biāo)系是右手笛卡爾坐標(biāo)系統(tǒng)。 我們用這個(gè)坐標(biāo)系來描述物體及光源的位置。世界坐標(biāo)系以屏幕中心 為原點(diǎn)(0,0,0),長度單位這樣來定:窗口范圍按此單位恰好是(-1,-1) 到(1,1)。3. 世界坐標(biāo)系到觀察坐標(biāo)系在三維觀察流水線中,場景構(gòu)造完成后的第一步工作是將對象描 述變換到觀察坐標(biāo)系中。對
4、象描述的轉(zhuǎn)換等價(jià)于將觀察坐標(biāo)系疊加到 世界坐標(biāo)系的一連串變換。1. 平移觀察坐標(biāo)原點(diǎn)到世界坐標(biāo)系原點(diǎn)。2. 進(jìn)行旋轉(zhuǎn),分別讓X,iev、yview和Zview軸對應(yīng)到世界坐標(biāo)的Xw、 Yw> Zw 軸。如果指定世界坐標(biāo)點(diǎn)P=(xo,yo,zo)為觀察坐標(biāo)原點(diǎn),則將觀察坐標(biāo) 系原點(diǎn)移到世界坐標(biāo)系原點(diǎn)的變換是1°°-汕T= 0 1 0 兒° °1弋。0 0 0 1將觀察坐標(biāo)系疊加到世界坐標(biāo)系的組合旋轉(zhuǎn)變換矩陣使用單位 向量u、V和n來形成。該變換矩陣為Uz 0 譏0 nz o 0 1這里,矩陣R的元素是uvn軸向量的分量。將前面的平移和旋轉(zhuǎn)矩陣乘起來獲
5、得坐標(biāo)變換矩陣:uxUyuzup°VtVyrVzw仇nxnynz0001該矩陣中的平移因子按U、V、n和Po的向量點(diǎn)積計(jì)算而得,Po 代表從世界坐標(biāo)系原點(diǎn)到觀察原點(diǎn)的向量。換句話說,平移因子實(shí)在 每一軸上的負(fù)投影(觀察坐標(biāo)系中的負(fù)分量P()o這些矩陣元素的取值U PQ = -XMx-yQUy- ZMz-u Po=-vA-yoyv-zovz-uP產(chǎn)一兀蟲,一 y(屮,一乙矩陣將世界坐標(biāo)系中的對象描述變換到觀察坐標(biāo)系。4. 投影變換對象描述變換到觀察坐標(biāo)后,下一階段是將其投影到觀察平面 上。投影變換就是把三維立體(或物體)投射到投影面上得到二維平 而圖形。平面幾何投影主要指平行投影、透視
6、投影以及通過這些投影 變換而得到的三維立體的常用平而圖形:三視圖、軸視圖以及透視圖。 圖形軟件一般都支持平行投影和透視投影兩種方式。在平行投影中(parallel projection)中,坐標(biāo)位置沿平行線變換到觀察平而上。圖4.1給出了用端點(diǎn)坐標(biāo)P1和P2描述的線段的平行投影。 平行投影保持對象的相關(guān)比例不變,這是三維對象計(jì)算機(jī)輔助繪圖和 設(shè)計(jì)中產(chǎn)生成比例工程圖的方法。場景中的平行線在平行投影中顯示 成平行的。一般有兩種獲得對象平行視圖的方法:沿垂直于觀察平而 的直線投影,或沿某傾斜角度投影到觀察平而。圖4.1線段到觀察平而的平行投影在透視投影(perspective projection)
7、中,對象位置沿會聚到觀察平 而后一點(diǎn)的直線變換到投影坐標(biāo)系。圖4.2給出了用端點(diǎn)坐標(biāo)P1和 P2描述的線段的透視投影。與平行投影不同的是,透視投影不保持 對象的相關(guān)比例。但場景的透視投影真實(shí)感教好,因?yàn)樵谕敢曪@示中 較遠(yuǎn)的對象減小了尺寸。圖4.2線段到觀察平而的透視投影5.正投影對象描述沿與投影平面法向量平行的方向到投影平而上的變換稱 為正投影(orthogonal projection;或正交投影,orthographic projection)o這生成一個(gè)平行投影變換,其中投影線與投影平面垂 直。正投影常常用來生成對象的前視圖、側(cè)視圖和頂視圖,如圖 5.1所示,前、側(cè)和后方向的正投影稱為立
8、面圖,頂部正投影稱為 平面圖。工程和建筑繪圖通常使用正投影,因?yàn)榭梢跃_地繪出 長度和角度,并能從圖中測量出這些值。6.斜投影斜投影是將三維形體向一個(gè)單一的投影面作平行投影,但投影方 向不垂直于投影而所得到的平而圖形。常選用垂直于某個(gè)主軸的投影 而,使得平行于投影面的形體表面可以進(jìn)行距離和角度的測量。斜投 影的特點(diǎn):既可以進(jìn)行測量又可以同時(shí)反映三維形體的多個(gè)面,具有 立體效果。常用的斜軸測圖有斜等測圖和斜二測圖,如下圖所示。M等測斜二制圖6. 1斜投影斜等側(cè)投影:投影方向與投影平而成45。的斜平行投影,它保持 平行投影平而和垂直投影平面的線的投影長度不變。斜二側(cè)投影:與投影平面成arctg(l
9、/2)角的斜平行投影,它使垂直投影平而的線產(chǎn)生長度為原1/2的投影線。7.透視投影透視投影基木符合人類的視覺習(xí)慣,同樣尺寸的物體離視點(diǎn) 近的比離視點(diǎn)遠(yuǎn)的大,遠(yuǎn)到極點(diǎn)即消失。以透視方式在計(jì)算機(jī)屏 幕上觀察物體,就如同透過一個(gè)完全透明的四方玻璃片看東西一 樣。想象有一條從眼睛到物體的線,這條直線穿過玻璃,并在玻 璃上涂上一個(gè)與物體顏色相同的點(diǎn)。如果對所有穿過玻璃的線都 這樣做,并且保持眼睛不動,那么玻璃片上的圖像就是透視變換 后得到的圖像,這塊玻璃片就是窗口。正如人眼睛不能聚焦到非 常近或非常遠(yuǎn)的物體一樣,透視投影有2個(gè)剪切面一一近剪切面 和遠(yuǎn)剪切而,分別將離視點(diǎn)太近和太遠(yuǎn)的物體部分或全部地剪切
10、掉。透視投影的特點(diǎn)是距離視點(diǎn)近的物體大,距離視點(diǎn)遠(yuǎn)的物體 小,遠(yuǎn)到極點(diǎn)即為消失。它的觀察空間是一個(gè)頂部和底部都被切 除掉的棱椎,也就是棱臺。OpenGL透視投影函數(shù)也有兩個(gè),其中 一個(gè)函數(shù)是:void glFrustum(GLdouble leftGLdouble Right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);此函數(shù)創(chuàng)建一個(gè)透視投影的有限觀察空間。它的參數(shù)只定義近裁 剪平面的左下角點(diǎn)和右上角點(diǎn)的三維空間坐標(biāo),即(left, bottom, -near)和(right, top, -near);最后一個(gè)參數(shù)far是遠(yuǎn)
11、裁剪平而的 Z負(fù)值,其左下角點(diǎn)和右上角點(diǎn)空間坐標(biāo)由函數(shù)根據(jù)透視投影原理 自動生成。near和far表示離視點(diǎn)的遠(yuǎn)近,它們總為正值。另一個(gè)函數(shù)是:void gluPerspective(GLdouble fovy.GLdouble aspect,GLdouble zNear, GLdouble zFar);它也創(chuàng)建一個(gè)透視投影的有限觀察空間,但它的參數(shù)定義于前面 的不同,如圖7-39所示,參數(shù)fovy定義視野在XZ平面(垂直方 向上的可見區(qū)域)的角度,范圍是0.0, 180.0;參數(shù)aspect是投影 平而的縱橫比(寬度與高度的比值);參數(shù)zNcai和Far分別是遠(yuǎn) 近裁剪而沿Z負(fù)軸到視點(diǎn)的距離
12、,它們總為正值。圖7.1透視投影的觀察空間&視口變換和三維屏幕坐標(biāo)系視口變換類似于照片沖洗過程中的照片裁剪。在計(jì)算機(jī)圖形學(xué) 中,視口是繪制圖像的句型區(qū)域。視口以窗口坐標(biāo)來定義,它表 示圖像相對于窗口左下角的位置。進(jìn)行視口變換時(shí),所有頂點(diǎn)都 己經(jīng)經(jīng)過幾何變換,并且位于取景器之外的圖像己經(jīng)被剪切掉了。8.1定義視口打開一個(gè)窗口時(shí),系統(tǒng)自動地將視口設(shè)置為整個(gè)窗口的大小。 在OpcnGL中可以用glViewport()函數(shù)來設(shè)置一個(gè)較小的繪圖區(qū) 域,該函數(shù)的原型如下:void glViewport(GLint x,GLint y,GLsizei width,GLsizei height); 該
13、函數(shù)的功能是設(shè)置窗口。x, y指定一個(gè)視口像素矩形的左下角, 其初始值是(0,0)。width,height指定一個(gè)視口的寬度和高度。當(dāng)一 個(gè)OpenGL環(huán)境被第一次連接到一個(gè)窗口時(shí),參數(shù)width和height 按此窗口的大小設(shè)置。該函數(shù)為x和y指定了一種由標(biāo)準(zhǔn)化的設(shè)備坐標(biāo)到窗口坐標(biāo)的映射幾何轉(zhuǎn)化。設(shè)(Xnd,ynd)是標(biāo)準(zhǔn)化的設(shè)備坐標(biāo),則窗口坐標(biāo)(Xw,yw)可由下式求得:(八 widthXw+ l丿 2 +x視口的寬度和高度被默認(rèn)為地截?cái)嗟揭欢ǖ姆秶?,具體范圍值由所處環(huán)境決定。可調(diào)用函數(shù)glGet(GL_MAX_VIEWPORT_DIMS) 查詢這一范圍值。視口的高寬比一般與投影取景器的
14、高寬比相同,否則會造成圖 像的變形。在程序的運(yùn)行過程中,可能會改變窗口的大小,因此 程序應(yīng)該始終檢測到這種變化,并作相應(yīng)的處理。8.2變換z坐標(biāo)在視口變換中,z坐標(biāo)或深度坐標(biāo)被編碼并被存儲起來。在 OpenGL中可以使用glDepthRange()函數(shù)縮放z坐標(biāo)的值,使它處 于所要求的范圍內(nèi)。該函數(shù)的原型為:void glDepthRange(GLclamped zNear,GLclamped zFar);該函數(shù)的功能是指定一種從歸一化深度坐標(biāo)到窗口深度坐標(biāo) 的映射方法。zNear指定從最近的剪切平面到窗口坐標(biāo)的映射,其 缺省值為O.zFar指定從最遠(yuǎn)的剪切平而到窗口坐標(biāo)的映射,其缺 省值為lo深度坐標(biāo)在剪切和除以w后,其范圍將變?yōu)椴?,1。其中-1和1 分別與最近和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《2025年大型企業(yè)法律咨詢服務(wù)合同》
- 如何自己設(shè)計(jì)圖案
- 2025溫室用地租賃合同
- 《設(shè)計(jì)高效數(shù)據(jù)庫表》課件
- 眼內(nèi)炎護(hù)理疑難病例討論
- 2025年合肥未來科技產(chǎn)業(yè)投資發(fā)展有限公司招聘筆試參考題庫附帶答案詳解
- 2025年四川阿壩州中國鐵路成都局集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年內(nèi)蒙古平莊煤業(yè)(集團(tuán))有限責(zé)任公司招聘筆試參考題庫含答案解析
- 2025年湖北宜昌市遠(yuǎn)安縣棲鳳新材料有限公司招聘筆試參考題庫含答案解析
- 2025五指山市西昌鎮(zhèn)社區(qū)工作者考試真題
- 出納員工考核試題及答案
- 河南省鄭州市2024-2025學(xué)年高三上學(xué)期1月第一次質(zhì)量預(yù)測地理試題2
- 船舶碰撞培訓(xùn)課件
- 項(xiàng)目啟動會模板
- 2025-2030年可穿戴式睡眠監(jiān)測儀行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 《圓明園的介紹》課件
- (2025)入團(tuán)考試題庫及答案
- 掃描電子顯微鏡(SEM)-介紹-原理-結(jié)構(gòu)-應(yīng)用
- 車廂定做合同范文大全
- 《地質(zhì)災(zāi)害監(jiān)測技術(shù)規(guī)范》
- 節(jié)能環(huán)保產(chǎn)品推廣與銷售代理協(xié)議
評論
0/150
提交評論