圖形學(xué)坐標(biāo)變換_第1頁
圖形學(xué)坐標(biāo)變換_第2頁
圖形學(xué)坐標(biāo)變換_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、要談坐標(biāo)系變換,那么坐標(biāo)系有哪些呢?依次有:物體坐標(biāo)系,世界坐標(biāo)系,相機(jī)坐標(biāo)系,投影坐標(biāo)系以及屏幕坐標(biāo)系.我要討論的就是這些坐標(biāo)系間的轉(zhuǎn)換。     這些坐標(biāo)系不是憑空而來,他們都是為了完成計(jì)算機(jī)3D圖形學(xué)最最最基本的目標(biāo)而出現(xiàn).     計(jì)算機(jī)3D圖形學(xué)最最最基本的目標(biāo)就是:將構(gòu)建好的3D物體顯示在2D屏幕坐標(biāo)上.     初看好像就是將最初的物體坐標(biāo)系轉(zhuǎn)換到屏幕坐標(biāo)系就可以了呀,為什么多出了世界坐標(biāo)系,相機(jī)坐標(biāo)系,投影坐標(biāo)系。這是因?yàn)?在一個(gè)大世界里有

2、多個(gè)物體,而每個(gè)物體都有自己的坐標(biāo)系,如何表述這些物體間相對的關(guān)系,這個(gè)多出了世界坐標(biāo)系;如果只需要看到這個(gè)世界其中一部分,這里就多出了相機(jī)坐標(biāo)系;至于投影坐標(biāo)系那是因?yàn)橹苯訉?D坐標(biāo)轉(zhuǎn)換為屏幕坐標(biāo)是非常復(fù)雜的(因?yàn)樗鼈儾粌H維度不同,度量不同(屏幕坐標(biāo)一般都是像素為單位,3D空間中我們可以現(xiàn)實(shí)世界的米,厘米為單位),XY的方向也不同,在2D空間時(shí)還要進(jìn)行坐標(biāo)系變換),所以先將3D坐標(biāo)降維到2D坐標(biāo),然后2D坐標(biāo)轉(zhuǎn)換到屏幕坐標(biāo)。理解3D圖形學(xué)的第一步:理解左手坐標(biāo)系與右手坐標(biāo)系     為什么會有左手坐標(biāo)系與右手坐標(biāo)系之分?  

3、;   在3D空間(沒錯(cuò)!就是3D)中,所有2D坐標(biāo)系是等價(jià)的(就是通過一系列的仿射變換,可以互相轉(zhuǎn)換)     而3D坐標(biāo)系不是等價(jià)的,通過仿射變換,是無法將左手坐標(biāo)系轉(zhuǎn)換到右手坐標(biāo)系;也就是說,物體坐標(biāo)系用的就是左手坐標(biāo)系,世界坐標(biāo)系用的是右手坐標(biāo)系,那么物體可能就是不會是我們所希望的樣子了,可能是倒立的,也可能是背對著我們的,所以我們要區(qū)分左手坐標(biāo)系與右手坐標(biāo)系。也許在4D空間,左右手坐標(biāo)系就可以互相變換了吧。     進(jìn)入正題吧:  &#

4、160;  首先討論的是物體坐標(biāo)系->世界坐標(biāo)系     前面說了為了描述多個(gè)物體間相對的關(guān)系,這里引進(jìn)了世界坐標(biāo)系,所以世界坐標(biāo)系是個(gè)參考坐標(biāo)系。     這一步的目的將所有的物體的點(diǎn)都轉(zhuǎn)移到世界坐標(biāo)系,這里主要涉及的是旋轉(zhuǎn),縮放,平移等。     不過我將詳細(xì)說明為何及如何用矩陣來描述這些變換。     例:如果有兩個(gè)坐標(biāo)系C與C, C是C繞Z軸旋轉(zhuǎn)得到的。下面是各坐標(biāo)軸的變換

5、:                  如果是C坐標(biāo)系的點(diǎn)P(x, y, z),而在C的表示就是         這時(shí)該如何建立矩陣呢? 答案就是區(qū)分你用的是行向量還是列向量.也許有人會問為什么不區(qū)分是左手坐標(biāo)系還是右手坐標(biāo)系呢?因?yàn)镃可以變換到C,那么他們一定是同在左手坐標(biāo)系或右手坐標(biāo)系,變換只能在可以互相轉(zhuǎn)換的坐標(biāo)系之間進(jìn)行。  

6、60;  如果你用的是行向量:由于行向量只能左乘矩陣(注意乘與乘以的區(qū)別)     所以矩陣形式應(yīng)該是這樣         只有這樣,在左乘矩陣時(shí)才能得到上面P的形式。          如果你用的是列向量: 由于列向量只能右乘矩陣(注意乘與乘以的區(qū)別)     所以矩陣形式應(yīng)該是這樣   

7、0;      只有這樣,在右乘矩陣時(shí)才能得到上面P的形式。          至于如何旋轉(zhuǎn),縮放,平移我不在多說。     覺得自己好像跑題了.還好這兩個(gè)坐標(biāo)系變換很簡單。     我們再討論世界坐標(biāo)系->相機(jī)坐標(biāo)系     引進(jìn)相機(jī)的目的就是只需看到世界的一部分,而哪些是可以在相機(jī)里看到的,就需要進(jìn)行篩選。將物體轉(zhuǎn)換到相機(jī)坐標(biāo)系,這樣相機(jī)坐標(biāo)系進(jìn)行篩選時(shí)就會

8、簡單很多。這里的重點(diǎn)是構(gòu)建相機(jī)坐標(biāo)系。     物體坐標(biāo)系,世界坐標(biāo)系是美工在繪制時(shí)就定義好了的。而相機(jī)坐標(biāo)系是需要程序?qū)崟r(shí)構(gòu)建的。(當(dāng)然這是通常情況下,如果你要建立一個(gè)世界,這個(gè)世界都是圍繞你轉(zhuǎn),要實(shí)時(shí)改變所有物體坐標(biāo)系,固定相機(jī)坐標(biāo)系(其實(shí)這時(shí)候相機(jī)坐標(biāo)系就是世界坐標(biāo)系),建立一個(gè)地心說的世界,我也沒辦法,你的思維也太不一樣了。)     如何構(gòu)建相機(jī)坐標(biāo)系呢?首先我們要明確目標(biāo):我們是要構(gòu)建3D坐標(biāo)系(好像是廢話),三個(gè)坐標(biāo)軸要互相垂直(也好像是廢話).    

9、0;我們一般用UVN相機(jī)。例如:D3D的D3DXMatrixLookAtLH,D3DXMatrixLookAtRH,OGL的gluLookAt(右手坐標(biāo)系).     如何建立呢UVN相機(jī)呢? 我們就要利用叉積這個(gè)工具了:兩個(gè)不平行,不重疊的向量的叉積可以得到與這兩個(gè)向量互相垂直的向量。     如果有了相機(jī)的位置與目標(biāo)的位置那么我們可以確定一個(gè)Z軸(有人問為什么是Z軸,因?yàn)槲矬w的遠(yuǎn)與近我們就習(xí)慣用Z值來表示的)。求Z軸時(shí)要注意是左手坐標(biāo)系還是右手坐標(biāo)系,左右手坐標(biāo)系XY軸方向相同時(shí),Z軸的方向

10、相反。所以左手坐標(biāo)系是目標(biāo)位置減去相機(jī)位置,而右手坐標(biāo)系則是相機(jī)位置減去目標(biāo)位置。記得normalize     這是我們要得到X與Y軸了。如何求X,Y軸呢?     一般方法是:     1、選擇一個(gè)臨時(shí)Y軸,     2、對臨時(shí)Y 與Z 軸進(jìn)行叉積求得一個(gè)X軸     3、X軸再與Z軸進(jìn)行叉積,得到一個(gè)Y軸。     有了XYZ就可以求出旋轉(zhuǎn)的相機(jī)矩陣了

11、。     如何選擇一個(gè)Y軸呢?大多數(shù)情況下是(0,1,0),但是如果是相機(jī)位置E與目標(biāo)位置T垂直,即(E-T=(0,+/-1,0)時(shí)),這時(shí)就不能用(0,1,0)了, 因?yàn)閮蓚€(gè)平行向量的叉積是零向量,所以我們就要另選一個(gè)Y軸。     但是我覺得我們可以改變方法。     如果不能選Y軸,我們就選擇一個(gè)臨時(shí)X軸,這個(gè)臨時(shí)軸就是(1,0,0)。     然后再對臨時(shí)X軸與Z軸進(jìn)行叉積求得一個(gè)Y軸。     最后Y軸再與Z軸進(jìn)行叉積,得到X軸。     這樣可以得到XYZ軸。     最后再根據(jù)行向量與列向量建立相機(jī)矩陣,再進(jìn)行平移。     相機(jī)坐標(biāo)系->投影坐標(biāo)系.     投影的目的就是:降維.   

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論