opengl-圖形的變換與裁剪-PPT幻燈片_第1頁
opengl-圖形的變換與裁剪-PPT幻燈片_第2頁
opengl-圖形的變換與裁剪-PPT幻燈片_第3頁
opengl-圖形的變換與裁剪-PPT幻燈片_第4頁
opengl-圖形的變換與裁剪-PPT幻燈片_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1內(nèi)容二維變換齊次坐標表示基本變換其它變換三維變換裁剪2二維變換通過二維變換和裁剪,將定義在二維世界坐標系中的物體變換到以像素為單位的屏幕坐標系中,實現(xiàn)二維物體的光柵顯示矢量圖形、卡通動畫二維圖形中常見的變換齊次坐標表示:基本變換:平移、旋轉(zhuǎn)、放縮其它變換:剪切、對稱、復合3用一個n+1維向量表示一個n維向量二維點(x,y),用(X,Y,)表示:(2,3)的齊次坐標表示可以是(4,6,2)、(3,4.5,1.5)可以任意選取齊次坐標與普通坐標之間是一一對應關系x=X/y=Y/齊次坐標表示點的優(yōu)勢防止浮點數(shù)溢出矩陣變換的統(tǒng)一表示XYP=1平面關于齊次坐標6二維旋轉(zhuǎn)將點P(x,y)繞坐標原點按逆時針旋轉(zhuǎn)角y7對于進行放縮的變換公式其中sx和sy分別為x和y分量的放縮比例二維縮放xy8剪切變換(Shear)沿X-軸方向的剪切變換XY(x,y)(x',y')變換過程中,y坐標保持不變,而x坐標值發(fā)生線性變化;平行于X軸的線段變換后仍平行于X軸,平行于Y軸的線段變換后錯切成與Y軸成固定角的直線9對稱變換XOY(x,y)(-x,y)(-x,-y)(x,-y)關于Y軸的對稱變換關于X軸的對稱變換關于坐標原點的對稱變換10對稱變換XOYy=x(y,x)(x,y)XOy=-x(x,y)(-y,-x)Y關于直線y=x的對稱變換關于直線y=-x的對稱變換11逆變換平移變換旋轉(zhuǎn)變換縮放變換12復合二維變換復合二維平移13復合二維變換復合二維旋轉(zhuǎn)14復合二維變換復合縮放變換15復合二維變換物體的二維變換不具有交換性:二維變換次序不同一般導致不同的變換結果(舉例)16復合二維變換上述變換的組合可以得到特殊的二維變換剛體變換可以分解為:平移和旋轉(zhuǎn)的組合物體的形狀沒有變化,位置和方位有變化仿射變換可以分解為:平移、旋轉(zhuǎn)和放縮的組合保持點的共線性、長度的比例=>平行線剛體變換仿射變換17復合二維變換(實例)對任意直線的對稱變換(直線方程為Ax+By+C=0)yox?18復合二維變換(實例)yoxyox19復合二維變換(實例)yoxyoxyox20復合二維變換(實例)yox21內(nèi)容二維變換三維變換場景坐標系和造型變換視點坐標系和取景變換投影坐標系和投影變換屏幕坐標系和設備變換裁剪22三維變換的基本概念三維變換可以看作照相過程模擬,即如何將場景中的三維幾何物體變換到二維屏幕上真實的照相機計算機中的虛擬照相機23三維變換的基本概念場景造型:場景坐標系:世界坐標系、局部坐標系變換:造型變換放置虛擬照相機坐標系:視點坐標系(虛擬照相機的位置、朝向以及向上的方向)變換:取景變換

(在視域四棱錐進行裁剪和背面剔除)24三維變換的基本概念投影(照相、攝影):坐標系:投影坐標系和窗口坐標系變換:投影變換二維顯示坐標系:窗口坐標系、規(guī)格化設備坐標系與屏幕的物理坐標系變換:設備變換、視窗變換25三維變換流程圖局部坐標系世界坐標系視點坐標系圖像坐標系規(guī)格化設備坐標系屏幕坐標系造型變換取景變換投影變換設備變換視窗變換26三維變換中的各種坐標系27場景坐標系和模型變換幾何場景建立于世界坐標系中場景中的具體物體與局部坐標系相聯(lián)系局部坐標系可以簡化物體的定義物體={標準體素,變換}造型變換:物體從局部坐標系到世界坐標系的變換三維線性和非線性變換28三維模型變換:平移三維平移T:三維點P(x,y,z)移動(tx,ty,tz)后,得到點P'(x',y',z')29三維模型變換:放縮三維放縮S:三維點P(x,y,z)放縮(sx,sy,sz)后,得到點P'(x',y',z')30三維模型變換繞x軸逆時針旋轉(zhuǎn)角的旋轉(zhuǎn)變換Rx’ (注:可以是(x,y,z)的函數(shù))31三維模型變換繞y軸逆時針旋轉(zhuǎn)角的旋轉(zhuǎn)變換Ry

(注:可以是(x,y,z)的函數(shù))32三維模型變換繞z軸逆時針旋轉(zhuǎn)角的旋轉(zhuǎn)變換Rz(注:可以是(x,y,z)的函數(shù))33三維模型變換繞任意軸旋轉(zhuǎn)平移對象,使得旋轉(zhuǎn)軸通過坐標原點旋轉(zhuǎn)對象使得旋轉(zhuǎn)軸與某一坐標軸重合繞坐標軸完成指定的旋轉(zhuǎn)利用逆旋轉(zhuǎn)變換使旋轉(zhuǎn)軸回到其原始方向利用逆平移使旋轉(zhuǎn)軸回到其原始位置34三維造型變換非線性三維模型變換:變換矩陣是空間位置(x,y,z)或者旋轉(zhuǎn)角度(x,y,z)的函數(shù)。

35視點坐標系和取景變換視點坐標系視點坐標系定義于世界坐標系中;其過程類似于拍照片:照相機鏡頭的朝向:視線方向照相機的位置UP方向36視點坐標系的交互建立坐標原點C=(Cx,Cy,Cz):相機的位置單位向量N=(Nx,Ny,Nz):鏡頭的朝向與N不平行的向量UP:

得到兩個向量U=(Ux,Uy,Uz)和V=(Vx,Vy,Vz),然后單位化。37視點坐標系的交互建立四個矢量C、U、V、N組成了視點坐標系由世界坐標系到視點坐標系的取景變換:

(x,y,z,1)為世界坐標系中的點 (u,v,n,1)為視點坐標系中的點38投影坐標系和投影變換投影變換:三維二維投影變換是在視點坐標系CUVN中進行的透視投影:符合人類的視覺特點,產(chǎn)生的投影效果更為真實平行投影:物體的相對度量保持不變(例如兩個等長線段的投影結果仍然是等長的),適用于建筑和機械設計39透視投影和平行投影40平行投影沿N軸、投影平面在n=0的平行投影

正投影斜投影41正交平行投影正投影的投影面與某一坐標軸垂直,而投影方向與該坐標軸的方向一致。正投影的圖形,在長寬高三個方向上的比例與實物保持一致,因此,常用于工程制圖。yxz主視圖側視圖俯視圖42透視投影43透視投影投影點:通常取視點坐標系中(0,0,0)點投影平面:取作與視線方向(N方向)垂直的平面n=d。假設在視點坐標系中的點為(u,v,n),那么在投影面上的對應點坐標(up,vp)為

44透視投影齊次坐標表示記投影后的齊次坐標為(U,V,N,W),則透視投影齊次坐標表示為:45關于透視投影一點透視投影兩點透視投影三點透視投影46規(guī)格化設備坐標和設備變換在投影平面上,有一個矩形區(qū)域稱為視窗上圖坐標系中vovxvy的矩形和“視域四棱錐”圖中的矩形物體投影后:二維齊次坐標表示

設備變換投影后二維齊次坐標除以最后一個坐標分量,便得到了規(guī)格化設備坐標

47屏幕坐標系和視窗變換屏幕坐標系:通常以像素為單位視窗變換二維變換:將定義在視窗中的規(guī)格化設備坐標轉(zhuǎn)換到以像素為單位的屏幕坐標掃描轉(zhuǎn)換:將連續(xù)的幾何物體轉(zhuǎn)換為離散的光柵表示48三維變換流程圖局部坐標系世界坐標系視點坐標系圖像坐標系規(guī)格化設備坐標系屏幕坐標系造型變換取景變換投影變換設備變換視窗變換49內(nèi)容二維變換三維變換裁剪二維線裁剪二維多邊形裁剪文本裁剪三維裁剪關于三維變換與裁剪50三維變換流程圖局部坐標系世界坐標系視點坐標系圖像坐標系規(guī)格化設備坐標系屏幕坐標系造型變換取景變換投影變換設備變換視窗變換二維裁剪?三維裁剪?51裁剪(Clipping)裁剪是確定場景或畫面中位于給定區(qū)域(2D或3D裁剪窗口)之內(nèi)的部分裁剪還可用于圖形反走樣、隱藏線、隱藏面、陰影、紋理等算法中裁剪推廣應用:多面體對多面體的裁剪,實體造型系統(tǒng)中執(zhí)行布爾運算在窗口系統(tǒng)中復制、移動或刪除畫面中某一部分(Cut-Copy-Paste)52裁剪裁剪算法分類:裁剪窗口的維數(shù):二維、三維裁剪窗口:規(guī)則(矩形、六面體)和不規(guī)則的(任意多邊形和多面體)對象維數(shù):點、線、多邊形、多面體實現(xiàn)方式:軟件和硬件實現(xiàn)53二維線裁剪圖形裁剪就是決定畫面中哪些點、線段或部分線段位于裁剪窗口之內(nèi)。位于窗口內(nèi)的點、線段或部分線段被保留用于顯示,而其它的則被拋棄。在一個典型的場景之中,需要對大量的點、線段進行裁剪,因此裁剪算法的效率十分重要(如何快速拒絕和接受)54二維線裁剪實例55二維線裁剪主要方法Sutherland-Cohen裁剪:編碼中點分割裁剪:除以2,加法運算參數(shù)化裁剪與梁友棟-Barsky裁剪:高效率的裁剪Nicholl-Lee-Nicholl裁剪:更為精細的判斷……56Cohn-Sutherland裁剪算法思想直線段端點的編碼快速拒絕/接受判斷:完全可見、部分可見、完全不可見部分可見線段的求交57直線段端點的4bit編碼第一位置1—直線段端點位于窗口上側第二位置1—直線段端點位于窗口下側第三位置1—直線段端點位于窗口右面第四位置1—直線段端點位于窗口左面58直線段端點的4bit編碼將線段兩端點的編碼逐位取邏輯“與”,若結果非零,則該線段必為完全不可見線,因而可立即拋棄線段兩端點的編碼均為零,即兩端點均在窗口之內(nèi),則線段可見(邏輯“或”結果為零)其它情形為部分可見和不可見,此時需要求交59線段端點編碼邏輯與注釋ab000000000000完全可見ij001000100010完全不可見ij000110010001完全不可見ij010100010001完全不可見ij010001000100完全不可見cd000000100000部分可見ef000100000000部分可見gh000110000000部分可見kl100000100000部分可見編碼舉例60直線段與窗口求交窗口:(xLeft,xRight,yTop,yBottom)直線段:P1(x1,y1)和P2(x2,y2)直線的顯式方程:或為直線段斜率61直線段與窗口求交它與窗口諸邊的交點左:右:上:下:62直線段與窗口求交特殊情形的考慮若直線的斜率為無窮大,則直線平行于窗口的左邊和右邊,僅需檢查直線與上、下兩邊的交點若直線斜率為零,則它平行于窗口的上、下兩邊,僅需檢查直線與左、右兩邊的交點63部分可見線段的處理Sutherland-Cohen算法的關鍵在于總是要得知位于窗口之外的一個端點。這樣位于此端點至交點之間的區(qū)段必為不可見,故可拋棄。然后此算法繼續(xù)處理線段被裁剪后的剩余部分,此時取交點來代替被裁剪線段的一個端點。64Sutherland-Cohen算法的描述對于每個窗口邊檢查線段P1P2是否為完全可見線段或可以拋棄的顯然不可見線段若P1在窗口外,繼續(xù)執(zhí)行算法;否則交換用P1P2和窗口邊的交點取代點P165Sutherland-Cohen算法實例線段端點P1(-3/2,1/6)和P2(1/2,3/2)的編碼分別為(0001)和(1000)。兩個端點編碼不全為0,邏輯與結果為0。因此該線段既非完全可見,也不是顯然不可見。比較兩端點編碼的第一位可以發(fā)現(xiàn)該線段跨越窗口的左邊界,并且端點P1位于窗外。66Sutherland-Cohen算法實例線段與窗口左邊(x=-1)的交點為P1’(-1,1/2)。用P1’取代P1得到新線段P1’(-1,1/2)P2(1/2,3/2)67Sutherland-Cohen算法實例端點P1、P2的編碼仍然為(0000)和(1000),此線段既非完全可見,也不是完全不可見。P1不在窗外,交換P1、P2得到一新線段P1(1/2,3/2)P2(-1,1/2)68Sutherland-Cohen算法實例線段同窗口頂邊界(y=1)的交點是P1’(-1/4,1)。用P1’取代P1得到新線段P1(-1/4,1)P2(-1,1/2)

69Sutherland-Cohen算法實例端點P1、P2的編碼分別為(0000)和(0000),該線段完全可見。裁剪過程結束。中點法基于Cohen-Sutherland的編碼方法線段與窗口的交點通過不斷的二分得到優(yōu)點裁剪運算只有加法和除以2的運算可以并行實現(xiàn)面向硬件的裁剪算法70中點法算法過程7172二維多邊形裁剪簡單的處理方法:對多邊形的每條線段采用線裁剪算法適用于線框圖顯示不適用于多邊形的著色顯示正確的處理方法:裁剪后的多邊形仍為封閉的多邊形可能會并入一部分窗口作為多邊形邊界也可能是多個不相連的多邊形73多邊形裁剪后的輸出應該是定義裁剪后的多邊形邊界的頂點序列如何保證裁剪后區(qū)域的封閉性如何確定裁剪后區(qū)域的邊界二維多邊形裁剪實例矩形窗口多邊形裁剪實例74

溫馨提示

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

評論

0/150

提交評論