計算機(jī)圖形學(xué)CG-7 三維視圖_第1頁
計算機(jī)圖形學(xué)CG-7 三維視圖_第2頁
計算機(jī)圖形學(xué)CG-7 三維視圖_第3頁
計算機(jī)圖形學(xué)CG-7 三維視圖_第4頁
計算機(jī)圖形學(xué)CG-7 三維視圖_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

3DViewing2Contents3DDisplayMethod3DViewingPipeline3DViewingCoordinate3DProjectionTransformation3DViewVolume3DClippingOpenGLViewingFunctions(P.316)33DDisplayMethodsProjection投影ParallelProjection平行投影PerspectiveProjection透視投影DepthCuing深度提示VisibleLine&SurfaceIdentificationSurfaceRendering表面繪制分解圖和剖面圖三維和立體視圖

4Projection5ParallelProjection6PerspectiveProjection7DepthCuing

Idea

根據(jù)物體與觀察位置的距離改變物體的亮度,模擬物體可視亮度的大氣效果,即近亮遠(yuǎn)暗。

彩頁10圖7-68VisibleLine&SurfaceIdentification二義性可見線、面標(biāo)識突出可見線或以不同的顏色來顯示使用虛線來顯示不可見線9Idea根據(jù)場景中的光線條件及根據(jù)指定表面的特性來建立物體表面的亮度,可以獲得額外的顯示真實性物體表面的性質(zhì):透明程度和表面的粗糙、平滑程度表面繪制10SurfaceRendering11SurfaceRendering12Contents3DDisplayMethod3DViewingPipeline3DViewingCoordinate3DProjectionTransformation3DViewVolume3DClipping133DViewingPipelineWC觀察變換建模變換MC投影變換VC視口變換NCDC規(guī)范化變換和裁剪PC14從三維空間到二維平面-相機(jī)模擬

用相機(jī)模擬的方式解釋:三維到二維變換相機(jī)拍照過程圖形三維變換過程15Contents3DDisplayMethod3DViewingPipeline3DViewingCoordinate3DProjectionTransformation3DViewVolume3DClipping163DViewingCoordinate觀察平面和觀察坐標(biāo)系的確定觀察平面:也叫投影平面觀察坐標(biāo)系用來指定觀察者的觀察位置及投影平面的參照系觀察坐標(biāo)系(Xv,Yv,Zv)的建立:觀察參考點Pref,觀察坐標(biāo)原點P0觀察平面法向量N:觀察Zv軸的正方向和觀察平面方向向量V→觀察向上向量:建立Yv軸的正方向,將V在觀察平面上投影,即可得到Y(jié)v軸利用右手原則得到Xv軸xwywzwxvyvzvP01718WC-VCTransformationxwywzwWorld

toViewingCoordinatexvyvzvNVU19世界坐標(biāo)->觀察坐標(biāo)的變換xwywzwxvyvzvxwywzwxvyvzvxwywzwxvyvzvxwywzwxvyvzvxwywzwxvyvzvTRXRYRZM=

RZRYRXT20Contents3DDisplayMethod3DViewingPipeline3DViewingCoordinate3DProjectionTransformation3DViewVolume3DClipping21

3DProjectionTransformationDef.Transformpointsfrom3Dto2DTypes22投影分類平行投影:坐標(biāo)位置沿平行線變換到觀察平面上透視投影:物體位置沿收斂于某點的直線變換到觀察平面23投影平行投影透視投影正平行投影斜平行投影正投影正軸測投影一點透視二點透視三點透視正等軸測投影正二軸測投影正三軸測投影24正投影:投影向量垂直于觀察平面斜投影:不垂直25正投影正三面投影:三視圖(正視圖、俯視圖、側(cè)視圖),投影平面法向量與三個坐標(biāo)軸之一平行軸測正投影:顯示物體多個側(cè)面的正投影等軸測投影:投影平面與每個坐標(biāo)軸的交點離原點距離相等(P296Fig7.25)26Examples三視圖27斜投影斜等測投影:α等于45°,生成的視圖。所有垂直于投影平面的線條投影后長度不變斜二測投影:投影角滿足tanα=2(63.4°),生成的視圖。垂直于投影平面的線條投影后得到一半長度。28Examples軸側(cè)正投影正投影斜投影29投影變換矩陣正平行投影

xp=xyp=yzp=0úúúú?ùêêêê?é=1000000000100001

M30斜平行投影xp=x+LcosФyp=y+LsinФZp=0L=z/tanα=zL1xp=x+zL1cosФyp=y+zL1sinФxvyvzv(x,y,z)(x,y)(xp,yp)ФαL31斜平行投影變換矩陣10L1cosφ001L1sinφ000000001M=32透視投影變換矩陣投影中心COP--也叫投影參考點PRP投影平面(也叫觀察平面VP)投影線(也叫視線):是從投影中心發(fā)出的,是不平行的33投影點坐標(biāo)計算寫出直線參數(shù)方程利用投影平面方程,求出參數(shù)u求出投影點坐標(biāo)xvyvzvP(x,y,z)(xp,yp)Q(0,0,zprp)34x’=x+(0-x)uy’=y+(0-y)uz’=z+(zprp-z)uzp=zvp=>u=(zvp-z)/(zprp-z)將u代入?yún)?shù)方程計算出xp,ypzvzvpp(x,y,z)zprpdp35xp=x*(zprp-zvp)/(zprp-z)=x*dp/(zprp-z)yp=y*(zprp-zvp)/(zprp-z)=y*dp/(zprp-z)zp=zvp投影參考點不在Z軸上?zvzvpp(x,y,z)q(xprp,yprp,zprp)36 Example:在三維坐標(biāo)系下一點P(1,5,-10),以XOY平面作為投影平面。1)若采用平行投影技術(shù),試計算其正投影點PV的坐標(biāo)。2)若采用透視投影技術(shù),以Q(0,0,8)為投影中心,試計算其透視投影點Pw的坐標(biāo)。37透視投影類型滅點:3D物體的一組平行線投影后收斂于一點,此點稱為滅點。主滅點:3D物體平行于坐標(biāo)軸的平行線收斂產(chǎn)生的滅點->主滅點一點、二點、三點透視(P348)如何控制主滅點數(shù)目?(投影平面與坐標(biāo)軸的相交的數(shù)目)38一點透視vp39二點透視40三點透視41三點透視二點透視一點透視42Contents3DDisplayMethod3DViewingPipeline3DViewingCoordinate3DProjectionTransformation3DViewVolume3DClipping43

3DViewVolume觀察體:3D圖形選取Window觀察體的作用

對三維物體進(jìn)行裁剪,只有在觀察體內(nèi)的物體才會被投影到投影平面窗口內(nèi)顯示出來如何設(shè)置?利用投影窗口邊界來設(shè)置。投影窗口:投影(觀察)平面上的矩形選景窗口44觀察體類型

無限型和有限型無限型觀察體無窮平行管道棱錐投影窗口COP45有限觀察體

通過指定平行于投影平面的前、后平面來實現(xiàn)作用:去掉離投影平面過近和過遠(yuǎn)的物體類型有:矩形平行六面體斜平行六面體棱臺后平面前平面投影窗口COP46前后平面與觀察平面的位置關(guān)系zv后平面觀察平面前平面zv觀察平面后平面前平面zv后平面=觀察平面前平面47觀察平面位置與投影效果的關(guān)系正平行投影:不受觀察平面位置的影響斜平行投影透視投影48觀察體調(diào)整調(diào)整目的調(diào)整的意義計算、處理方便快捷如何調(diào)整?zyx49觀察體調(diào)整正平行投影觀察體為正平行六面體,不用調(diào)整斜平行投影和透視投影的觀察體均需要調(diào)整50窗口NZv投影向量V'pZ軸錯切斜平行六面體觀察體矩形平行六面體觀察體平行投影變換的觀察體調(diào)整斜投影正投影窗口NZv投影向量Vp10-px/pz001-py/pz000100001Mp=51COP(xprp,yprp,zprp)Zvp(x,y,z)Z軸錯切+縮放變換COP(xprp,'yprp',zprp)Zvp(x',y',z')(x'',y'',z'')透視投影變換的觀察體調(diào)整投影向量Vp投影向量Vp'縮放系數(shù)隨著z的不同而變化52Contents3DDisplayMethod3DViewingPipeline3DViewingCoordinate3DProjectionTransformation3DViewVolume3DClipping53

3DClipping裁剪窗口裁剪的方法平面方程裁剪編碼裁剪參數(shù)方程裁剪54三維裁剪的裁剪窗口是一個六面體,包括左側(cè)面、右側(cè)面、頂面、底面、前面和后面右面x頂面左面后面前面底面yz頂面左面后面右面前面底面yxz

3DClipping55平面方程Ax+By+Cz+D=0LXYZ

平面方程裁剪56方程判斷將一條直線段的端點坐標(biāo)代入邊界平面方程中若AX+BY+CZ+D>0,則端點位于邊界平面外若AX+BY+CZ+D<0,則端點位于邊界平面內(nèi)

平面方程裁剪57裁剪原則:兩個端點都在某一邊界平面外的線段被裁剪掉兩個端點都在所有邊界平面內(nèi)的線段被保留兩個端點不滿足上述條件,則計算直線與邊界的交點:由直線方程和平面方程聯(lián)立得到交點

平面方程裁剪58思想

同二維空間的直線CS裁剪算法空間劃分編碼:六位編碼裁剪(cohen-sutherland算法)59六位區(qū)域碼

b6b5b4b3b2b1編碼原則:左:if(x<xwmin)b1=1右:if(x>xwmax)b2=1下:if(y<ywmin)b3=1上:if(y>ywmax)b4=1前:if(z<zwmin)b5=1后:if(z>zwmax)b6=1編碼裁剪(cohen-sutherland算法)60編碼裁剪原則C1==0&&C2==0

保留(C1&C2)

0

刪除(C1&C2)==0求解直線與邊界的交點編碼裁剪(cohen-sutherland算法)61小結(jié)本算法與二維算法一樣。優(yōu)點:簡單,易于實現(xiàn)。缺點:效率編碼裁剪(cohen-sutherland算法)62直線的兩個端點P1(x1,y1,z1),P2(x2,y2,z2)參數(shù)方程x=x1+(x2-x1)uy=y1+(y2-y1)uz=z1+(z2-z1)uu

[0,1]參數(shù)方程裁剪63LB算法的擴(kuò)展考慮xwmin,xwmax,ywmin,ywmax,zwmin,zwmaxU1,U2求取參數(shù)方程裁剪64LB算法描述計算Pk,Qk,k=1~6判斷

Pk=0,表示直線平行于窗口某邊界Qk

<

0,直線在窗口外,剪裁Qk

>0,直線在平行邊界內(nèi)Pk!=0,用Qk/Pk計算交點所對應(yīng)的U值參數(shù)方程裁剪65計算參數(shù)u1和u2 u1=Max{0,Qk/Pk},當(dāng)Pk<0 u2=Min{1,Qk/Pk},當(dāng)Pk>0u1>u2,則直線在窗口外u1>u2,

否則計算交點坐標(biāo),即得到剪裁后的線段的端點參數(shù)方程裁剪66OpenGL的坐標(biāo)變換機(jī)制相關(guān)數(shù)據(jù)結(jié)構(gòu)模型變換函數(shù)觀察變換函數(shù)投影變換函數(shù)圖形變換的編程次序67相關(guān)數(shù)據(jù)結(jié)構(gòu)兩個坐標(biāo)變換矩陣(4X4)ModelView矩陣:描述物體平移、旋轉(zhuǎn)、縮放等變換Projection矩陣:描述如何將3D坐標(biāo)轉(zhuǎn)換為2D坐標(biāo)如何指定當(dāng)前變換矩陣?glMatrixMode(GL_MODELVIEW);glMatrixMode(GL_PROJECTION);兩個用于存儲矩陣的堆棧ModelView矩陣堆棧:至少32層Projection矩陣堆棧:一般2層68Model變換函數(shù)首先使以下函數(shù),表示開始操作ModelView矩陣glMatrixMode(GL_MODELVIEW);操作ModelView矩陣進(jìn)行Model變換的方法分兩類:voidglLoadIdentity();voidglLoadMatrix{fd}(constTYPE*m);voidglMultMatrix{fd}(constTYPE*m);voidglTranslate{fd}(TYPEx,TYPEy,TYPEz);voidglRotate{fd}(TYPEangle,TYPEx,TYPEy,TYPEz);void

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論