


下載本文檔
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國陳皮市場運(yùn)營格局及發(fā)展趨勢分析報(bào)告
- 2025-2030年中國鋁合金金屬型鑄件行業(yè)十三五規(guī)劃及發(fā)展策略研究報(bào)告
- 2025-2030年中國重卡汽車市場發(fā)展?fàn)顩r及前景趨勢分析報(bào)告
- 2025-2030年中國酒精制造行業(yè)運(yùn)營現(xiàn)狀及發(fā)展規(guī)劃分析報(bào)告
- 2025-2030年中國進(jìn)口葡萄酒行業(yè)運(yùn)營狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025安徽省建筑安全員《C證》考試題庫及答案
- 2025-2030年中國觀光船游覽市場發(fā)展?fàn)顩r與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國營銷服務(wù)行業(yè)市場競爭狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國米爾貝肟市場運(yùn)營現(xiàn)狀及發(fā)展規(guī)劃分析報(bào)告
- 2025-2030年中國電解鋅行業(yè)十三五規(guī)劃與發(fā)展建議分析報(bào)告
- 2025年執(zhí)業(yè)醫(yī)師定期考核題庫及參考答案
- 2025年北京交通職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 心理健康七個(gè)一主題活動方案
- 多元化票務(wù)系統(tǒng)設(shè)計(jì)-深度研究
- 2024年菏澤職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- GB/T 22180-2024速凍裹衣魚
- 《公路施工組織設(shè)計(jì)》課件
- 人教版地理七年級下冊7.1.1 亞洲的自然環(huán)境(課件33張)
- 中醫(yī)藥防疫課件
- 《Python程序設(shè)計(jì)基礎(chǔ)教程(微課版)》全套教學(xué)課件
- 湘教版六年級下冊美術(shù)第2課《俯仰之間》教案
評論
0/150
提交評論