




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、標(biāo)準(zhǔn)的繪制流程由一系列計(jì)算組成輸入是:多邊形輸出是保存在緩沖區(qū)的圖像主要涉及的操作是:三維變換與光照!OriginalRotationUniform ScaleNonuniform ScaleShearImages from Conan The Destroyer, 1984利用平移矩陣,將點(diǎn)V=(x,y,z)T平移至V=(x+Tx,y+Ty,z+Tz)T處,表示為V=V+T利用縮放矩陣,將點(diǎn)V=(x,y,z)T縮放(d1,d2,d3)倍其中對(duì)角線上的元素表示對(duì)應(yīng)坐標(biāo)系分別放大(di1)或者縮小了(di1)的量二維旋轉(zhuǎn)隱含著繞平面軸旋轉(zhuǎn)二維旋轉(zhuǎn)隱含著繞平面軸旋轉(zhuǎn)cossinsincosRcos
2、sin0sincos0001Rcossin0sincos0001zRcos0sin010sin0cosyR1000cossin0sincosxR“Z 正對(duì)面”可以由軸平行旋轉(zhuǎn)復(fù)合而得可以用歐拉角表示(非唯一)也可以用四元數(shù)表示 zyxRRRRrot( , , )x y zR zyxRRRR矩陣復(fù)合可完成對(duì)空間點(diǎn)的任意操作矩陣乘法不滿足交換率,因此復(fù)合的次序非常重要!例如:先縮放后平移先平移后縮放通常情況下,給出的旋轉(zhuǎn)矩陣是繞原點(diǎn)旋轉(zhuǎn)的。因此首先要將物體平移至原點(diǎn),進(jìn)行旋轉(zhuǎn),再平移回來。適合于人體動(dòng)畫Mike Marr, COS 426,Princeton University, 1995單個(gè)物
3、體可能在場景出現(xiàn)多次三維數(shù)據(jù)可以配備多個(gè)變換建模時(shí)所采用的坐標(biāo)系選取物體上或靠近物體的某一點(diǎn)作為原點(diǎn),物體上的其他點(diǎn)相對(duì)于該點(diǎn)的坐標(biāo)進(jìn)行表示針對(duì)物體的局部坐標(biāo)系舉例:選取立方體的某一個(gè)頂點(diǎn)作為原點(diǎn),建立局部坐標(biāo)系 y z x 全局坐標(biāo)系所有物體組成一個(gè)場景,場景坐標(biāo)系稱為世界坐標(biāo)系所有物體必須變換至該坐標(biāo)系,以確定彼此之間的相對(duì)空間位置將物體放至場景內(nèi)等價(jià)于定義一個(gè)從物體局部坐標(biāo)系至世界坐標(biāo)系的變換矩陣場景需要定義光照照相機(jī)坐標(biāo)系統(tǒng)決定照相機(jī)參數(shù)和可見域必須包括 視點(diǎn)位置 視線 視點(diǎn)坐標(biāo)系 投影平面 視域 其他(可選)Eye position(focal point) View plane世界
4、坐標(biāo)系相機(jī)矩陣相機(jī)矩陣投影矩陣投影矩陣相機(jī)坐標(biāo)Device coordinates視區(qū)矩陣視區(qū)矩陣窗口坐標(biāo)物體坐標(biāo)模型矩陣模型矩陣ModelView 變換變換局部物體坐標(biāo)世界坐標(biāo)相機(jī)坐標(biāo)設(shè)備坐標(biāo)窗口坐標(biāo)系統(tǒng)投影與裁剪將局部坐標(biāo)系變換到世界坐標(biāo)系包括縮放、旋轉(zhuǎn)、平移等將世界坐標(biāo)系中的一點(diǎn)變換至照相機(jī)坐標(biāo)系可以分成平移和旋轉(zhuǎn)兩部分視域、投影方式、屏幕分辨率投影物體首先與視域求交決定可見部分平行投影平行投影透視投影透視投影將多邊形的朝向與視點(diǎn)或投影中心相比較,去除那些不可見多邊形可見性測(cè)試在視見空間內(nèi)進(jìn)行。計(jì)算每一個(gè)多邊形的法向,并檢查法向與視線方向點(diǎn)積后值的符號(hào)當(dāng)且僅當(dāng)視域體內(nèi)的物體將被投影.決定
5、物體的哪一部分將被投影,哪一部分被剔除的過程叫做裁剪.Z=0 plane將物體從世界坐標(biāo)系變換至屏幕坐標(biāo)系,可以看成是:將物體首先作相機(jī)變換,再作透視變換:一般還需要一個(gè)視區(qū)(視口)變換(viewport transformation)將視域歸一化視域與物體求交,求交后的物體投影,并按照相應(yīng)的視見區(qū)域大小xmin,xmax、 ymin,ymax、 zmin,zmax進(jìn)行縮放相機(jī)變換: 指定照相機(jī)位置和方向(也叫照相機(jī)坐標(biāo)系統(tǒng))模型變換: 將物體在場景中移動(dòng),也可以視為從局部坐標(biāo)系到全局坐標(biāo)系ModelView變換: 相機(jī)變換和模型變換的混合.投影變換: 定義視域體并指向投影視區(qū)變換: 將二維投
6、影后的場景變換到繪制窗口.一系列變換的合成可通過矩陣的嵌套完成關(guān)于任意一點(diǎn)的縮放:關(guān)于任意軸的旋轉(zhuǎn)12311231121.).().)(.(TTTTTTPTPTTTTTPTTTTQnnnnnn)()()()()(yzxzyLRRRRRR),(),(),(zyxzyxzyxdddTsssSdddTModelView變換式建模矩陣M和相機(jī)變換V的乘積 C = VM所有在OpenGL中的變換函數(shù)只能設(shè)置modelview 矩陣. 因此, ModelView 在物體被操作之前被調(diào)用.例如: glMatrixMode (GL_MODELVIEW); glLoadIdentity (); glScalef
7、 (2.0f, 2.0f, 2.0f); DrawScene ();矩陣堆棧的頂部矩陣就是當(dāng)前的ModelView 矩陣 (C). glPushMatrix (): 將當(dāng)前的矩陣加入到矩陣堆棧glPopMatrix (): 將頂部矩陣刪除,并將所有其他矩陣往上移動(dòng)一位。矩陣堆棧的好處:允許一系列位置(代表了坐標(biāo)系統(tǒng))保留下來,并在需要的時(shí)候使用它們。M1M2M3Transform demo建模變換: glLoadIdentity : C I glLoadMatrix(m) : C m glMultiMatrix(m) : C C m glRotatef(q,x,y,z) : C C RL(q)
8、 glTranslatef(x,y,z) : C C T(x,y,z) glScalef(x,y,z) : C C S(x,y,z)最后定義的變換最先被執(zhí)行.照相機(jī)坐標(biāo)系統(tǒng): 也叫視點(diǎn)坐標(biāo)系統(tǒng)或者視見坐標(biāo)系統(tǒng). 它表示了在照相機(jī)后面看場景的坐標(biāo)關(guān)系。X-Y平面是投影面(也叫平面) ,照相機(jī)一般往負(fù)z方向看。相機(jī)變換的兩種方法保持相機(jī)不變,將物體(在世界坐標(biāo)系統(tǒng)中)繞著相機(jī)旋轉(zhuǎn)。保持物體不變,將相機(jī)在世界坐標(biāo)系統(tǒng)中變換。相機(jī)變換是物體變換的逆變換。yxz-zeye將相機(jī)放置到世界坐標(biāo)系統(tǒng)中定義相機(jī)變換 glMatrixMode (GL_MODELVIEW); glLoadIdentity ();
9、 gluLookAt (eye.x, eye.y, eye.z, look.x, look.y, look.z, up.x, up.y, up.z);upeyelookYZXWCSxyzP0Q0VCS),(),( 1000neyeveyeueyedddwherednnndvvvduuuVzyxzzyxyzyxxzyx坐標(biāo)系統(tǒng), 形成了.:,eyen , v , uunvnupulookeyenvun-neyelook相機(jī)變換:Void DisplayScene () glClear (GL_COLOR_BUFFER_BIT); glColor3f (1.0f, 0.0f, 0.0f); glL
10、oadIdentity (); gluLookAt (0.0, 0.0, 10.0, 0.0, 0.0, -100.0, 0.0, 1.0, 0.0); glBegin (GL_TRIANGLE); glVertex3f (10.0f, 0.0f, 0.0f); glVertex3f (0.0f, 10.0f, 0.0f); glVertex3f (-10.0f, 0.0f, 0.0f); glEnd(); glFlush ();gluLookAt 函數(shù)顯式地定義相機(jī)。另外一種方法式將場景進(jìn)行旋轉(zhuǎn)(glRotate)和平移(glTranslate) 同時(shí),將相機(jī)置于缺省的世界坐標(biāo)系統(tǒng).旋轉(zhuǎn)和平
11、移的累積效果構(gòu)成了最終的相機(jī)變換. 當(dāng)然, glTranslate 和 glRotate也可用作其他用途/viewing a scene centered at origin from +X direction:Void DisplayScene () glClear (GL_COLOR_BUFFER_BIT); glColor3f (1.0f, 0.0f, 0.0f); glLoadIdentity (); glTranslatef (0.0, 0.0, -10.0); glRotatef (-90.0, 0.0, 1.0, 0.0); / glBegin (GL_TRIANGLE); gl
12、Vertex3f (10.0f, 0.0f, 0.0f); glVertex3f (0.0f, 10.0f, 0.0f); glVertex3f (-10.0f, 0.0f, 0.0f); glEnd(); glFlush ();投影變換設(shè)置視域體,從而定義裁剪面和投影矩陣以及投影方式。投影矩陣在ModelView矩陣之后被實(shí)行,因此,視域體是定義在相機(jī)坐標(biāo)系統(tǒng)中的。透視投影與平行投影定義正交視域體: glOrtho (left, right, bottom, top, near, far); 或者: glOrtho2D (left, right, bottom, top);定義投影矩陣: g
13、lMatrixMode (GL_PROJECTION); glLoadIdentity ( ); glOrtho (left, right, bottom, top, near, far)YZX成像平面視域體VCS(Left, righ, bottom, top) 定義視域體的最小、最大的 X 和Y坐標(biāo); (near, far) 定義視域體的近和遠(yuǎn)平面到X-Y平面的距離.視域四堎錐的定義: glFrustum (left, right, bottom, top, near, far)視域體的形成是:將原點(diǎn)與前面的四個(gè)頂點(diǎn)連接起來,并由Z方向的近平面和遠(yuǎn)平面限制。YZX成像平面視域四堎錐原點(diǎn)投影
14、矩陣 glMatrixMode (GL_PROJECTION); glLoadIdentity (); glFrustum (left, right, bottom, top, near, far)視域體的定義 glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluPerspective (angle, aspect, near, far)YZXangle: y方向張的視角aspect: 方正率 (成像平面的寬度/高度).Vvv demo視區(qū)是窗口的繪制區(qū)域,特殊的視區(qū)是全屏幕缺省視區(qū)是窗口本身視區(qū)矩陣將投影后的成像平面投到視區(qū) glViewport (GLint left, GLint bottom, GLint width, GLint height)(left, bottom, width, height) 定義在窗口系統(tǒng)中(象素級(jí))窗口窗口視區(qū)視區(qū)(left, bottom)(right, top)可隨意裝入矩陣: GLfloat m16 = 1.0, 0.0, 0.0, ; glLoa
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 節(jié)拍訓(xùn)練中的獨(dú)特技巧樂理試題及答案
- 物理實(shí)效轉(zhuǎn)化2025年試題及答案
- 如何解讀創(chuàng)業(yè)扶持政策的新規(guī)試題及答案
- 綠色供應(yīng)鏈在制造業(yè)中的綠色產(chǎn)品市場推廣團(tuán)隊(duì)協(xié)作能力培養(yǎng)策略研究報(bào)告
- 河北單招全套試題及答案
- 教育直播平臺(tái)2025年運(yùn)營挑戰(zhàn)與教育資源共享策略研究報(bào)告
- 農(nóng)業(yè)灌溉用水高效利用與現(xiàn)代農(nóng)業(yè)節(jié)水技術(shù)政策研究報(bào)告
- 量子通信技術(shù)在工業(yè)互聯(lián)網(wǎng)平臺(tái)中的數(shù)據(jù)加密與隱私保護(hù)預(yù)研報(bào)告
- 廣東ps考證試題及答案解析
- 節(jié)水灌溉技術(shù)在農(nóng)業(yè)中的應(yīng)用成果鑒定報(bào)告2025
- 相關(guān)方的需求和期望清單
- 北京版二年級(jí)下冊(cè)混合運(yùn)算練習(xí)200題及答案
- 中國人權(quán)報(bào)告
- 第11課《及時(shí)治小傷》教學(xué)設(shè)計(jì)
- HELLP綜合征(中文)課件
- 數(shù)據(jù)分析與評(píng)價(jià)控制程序
- 鉆341 18號(hào) 陜西旅游版五年級(jí)英語上冊(cè) unit 6 How much is it 單元綜合作業(yè)設(shè)計(jì) 3000字 版面設(shè)計(jì)
- AI賦能光伏電站視頻監(jiān)控系統(tǒng)解決方案
- 【我的祖國詩朗誦稿董卿】我的祖國詩朗誦稿
- (滬教牛津版)三年級(jí)英語下冊(cè)單元檢測(cè)試卷合集(14套)
- 外墻 吊繩滑板油漆安全施工方案
評(píng)論
0/150
提交評(píng)論