第七章 三維觀察2計算機(jī)圖形學(xué)_第1頁
第七章 三維觀察2計算機(jī)圖形學(xué)_第2頁
第七章 三維觀察2計算機(jī)圖形學(xué)_第3頁
第七章 三維觀察2計算機(jī)圖形學(xué)_第4頁
第七章 三維觀察2計算機(jī)圖形學(xué)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Three-Dimensional Viewing(三維觀察)三維觀察流水線投影變換OpenGL 三維觀察函數(shù)2022-7-4交通運輸學(xué)院CAD/CAM研究所1三維圖形的基本研究內(nèi)容:1.三維形體的表示2.投影3.消除隱藏面與隱藏線4.建立光照明模型、開發(fā)真實感圖形繪制方法2022-7-4交通運輸學(xué)院CAD/CAM研究所27.1 三維觀察概念綜述三維場景觀察投影深度提示可見線、面的判定面繪制分解和剖切視圖三維和立體視圖2022-7-4交通運輸學(xué)院CAD/CAM研究所32022-7-4交通運輸學(xué)院CAD/CAM研究所47.2 三維觀察流水線三維觀察過程比二維觀察過程要復(fù)雜得多。在二維觀察過程中,

2、我們只需要在二維世界坐標(biāo)系中指定一個窗口,將圖形相對于窗口進(jìn)行裁剪;然后,在設(shè)備坐標(biāo)系中指定一個視口,再將裁剪過的對象進(jìn)行視窗變換,便可進(jìn)行顯示或其它的圖形輸出。在三維觀察過程中,觀察窗在三維觀察過程中,觀察窗口和物體是三維的,但顯示平面是二維的,口和物體是三維的,但顯示平面是二維的,這種幾何空間的維數(shù)的不匹配大大增加了三維觀察的難度。為了提高效率,不同的圖形系統(tǒng)采用了各具特色的圖形觀察流水線。要獲得三維世界坐標(biāo)系場景的顯示,必須先建立觀察用的坐標(biāo)系、或稱建立觀察用的坐標(biāo)系、或稱“照相機(jī)照相機(jī)”坐標(biāo)坐標(biāo)系。該坐標(biāo)系定義使照相機(jī)膠片平面對應(yīng)觀察坐標(biāo)系的觀察平面或稱投影平面系。該坐標(biāo)系定義使照相機(jī)

3、膠片平面對應(yīng)觀察坐標(biāo)系的觀察平面或稱投影平面(View plane 或或projection plane)。然后將對象描述轉(zhuǎn)換到觀察坐標(biāo)系,并投影到觀察平面上。我們可以用線框形式輸出在設(shè)備上,或用光照和面繪制技術(shù)輸出真實感圖形。2022-7-4交通運輸學(xué)院CAD/CAM研究所5三維觀察流水線的坐標(biāo)系變化過程投影變換投影變換實際物理顯示設(shè)備VCDCMCPC建模變換規(guī)范化變換和裁剪觀察觀察變換變換(3D)視口變換WCNC掌握二二維維觀觀察察2022-7-4交通運輸學(xué)院CAD/CAM研究所67.3 Viewing Coordinates(3D觀察坐標(biāo))Generating a view of an

4、object in three dimensions is similar to photographing the object. These ideas are incorporated into(并入) three-dimensional graphics packages so that view of a scene can be generated, given the spatial position, orientation, and aperture size of the “cameracamera”.2022-7-4交通運輸學(xué)院CAD/CAM研究所7view-coordi

5、nate system (觀察坐標(biāo)系,also called view reference coordinate system,觀察參考坐標(biāo)系)在世界坐標(biāo)系中選定一點P0作為觀察原點建立觀察坐標(biāo)系。P0稱為觀察點或觀察位置或視點A view plane (觀察平面,又稱投影平面 projection plane), is set up perpendicular to the viewing zv axis.ywxwzwxvyvzvP0=(x0 ,y0 ,z0)怎樣確定觀察點怎樣確定觀察點P0 ,投影平面(,投影平面(Zv)?2022-7-4交通運輸學(xué)院CAD/CAM研究所87.3.1 vie

6、w-plane normal vector (觀察平面法向量)觀察參考坐標(biāo)系zv axis的正方向, view-plane normal vector (觀察平面法向量), N N.ywxwzwNyvxvzvP0投影平面投影平面9N=P0-PrefN=P指定觀察平面法向量N方法1:世界坐標(biāo)系原點到一指定點的方向方法2:指定一參考點Pref(look-at point, 注視點),參考點到觀察原點的方向zwywxwyvxvzvP0PNzwywxwyvxvzvP0PrefN其他方法,如三維對象的直線邊。其他方法,如三維對象的直線邊。投影平面投影平面2022-7-4交通運輸學(xué)院CAD/CAM研究所1

7、0Specifying the View Plane觀察原點:Generally, graphics packages allow users to choose the position of the view plane(with some restriction) along the zv axis by specifying the view-plane distance from the viewing origin. The view plane is always parallel to the xvyv plane.yvxvzv觀察原點觀察原點2022-7-4交通運輸學(xué)院CAD

8、/CAM研究所117.3.2 view-up vector(觀察向上向量)n觀察向上向量:Choose the up direction for the view by specifying a vector V, called the view-up vector.This vector is used to establish the positive direction for the yv axis.n通常在世界坐標(biāo)系選定一點,因V必須垂直于N,原點到該點的方向經(jīng)過調(diào)整作為V。n可選任意向量,只要不平行于N。方便的是yw 。VRPUVPNNVUPVVPywxwzwNyvxvzvP020

9、22-7-4交通運輸學(xué)院CAD/CAM研究所127.3.3 觀察坐標(biāo)系x xv v axis axis :Using vectors N N and V V, the graphics package can compute a third vector U U, perpendicular to both N N and V V, to define the direction for the xv axis.uvn uvn 坐標(biāo)系:坐標(biāo)系:These computation are conveniently carried out with unit axis vectors. The v

10、iewing system is then often described as a uvn. system.yvxvzvuvn單位規(guī)范化ywxwzwNyvxvzvP07.4 從世界坐標(biāo)到觀察坐標(biāo)的變換ywxwzwxvyvzv(x0 ,y0 ,z0)ywxwzwxvyvzvywxwzwxvyvzvTR1000010000100001Tzyx平移旋轉(zhuǎn)R= RzRyRx重要向量夾角計算公式n(x y z 1) =RT(x y z 1) 2022-7-414計算單位uvn向量,直接形成復(fù)合旋轉(zhuǎn)矩陣。給定N和V,則其單位向量為:),(NNn321nnn),(NVNVu321uuu),(unv321vv

11、vVRPUVPNNVUPVVPuvn Viewing Coordinates1000000R321321321nnnvvvuuunMwc,vc=RT7.4 從世界坐標(biāo)到觀察坐標(biāo)的變換1000010000100001Tzyx1000010000100001Tzyx平移旋轉(zhuǎn)R= RzRyRx掌握n(x y z 1) = RT(x y z 1) 2022-7-4交通運輸學(xué)院CAD/CAM研究所16其中:1000000,PnnnnPvvvvPuuuuTRMzyxzyxzyxvcwczyxzyxzyxnznynxPnvzvyvxPvuzuyuxPu0000000000002022-7-4交通運輸學(xué)院CA

12、D/CAM研究所17n(x y z 1) =RT(x y z 1) 平面幾何投影平行投影透視投影正投影斜投影三視圖正軸測斜等測斜二測正等測正二測正三測主視圖側(cè)視圖俯視圖一點透視二點透視三點透視圖7-3 平面幾何投影的分類平面幾何投影2022-7-4交通運輸學(xué)院CAD/CAM研究所197.5 投影變換Parallel Projections(平行投影)Perspective Projections(透視投影)2022-7-4交通運輸學(xué)院CAD/CAM研究所20Parallel Projections(平行投影)orthographic parallel projection(正平行投影,正投影)

13、.oblique parallel projection(斜平行投影).vpOrthographic ProjectionvpOblique Projection2022-7-4交通運輸學(xué)院CAD/CAM研究所21Parallel Projections(平行投影)平行投影軸測正投影正投影斜投影Parallel Projections(平行投影)7.6 Orthographic Projections(正投影)三視圖(top,side,front).axonometric orthographic projections (軸測正投影). isometric projection (等軸測投影

14、).Top viewTop viewSide viewSide viewFront viewFront view2022-7-4交通運輸學(xué)院CAD/CAM研究所247.6.2 正投影坐標(biāo)系若投影方向平行于zv,則任意位置(x,y,z)的投影坐標(biāo)為:xp=x, yp=y任何投影變換中z坐標(biāo)值被保存在深度緩存器中,用于可見性檢測。yvxvzv(x, y, z)(x, y)2022-7-4交通運輸學(xué)院CAD/CAM研究所257.6.3 裁剪窗口和正投影觀察體裁剪窗口的邊指定了場景要顯示部分的x和y的限制范圍。裁剪窗口的邊與投影線共同形成一無限觀察體。yvxvzv(xwmax, ywmax)(xwmi

15、n, ywmin)觀察平面2022-7-4交通運輸學(xué)院CAD/CAM研究所26增加近裁剪平面和遠(yuǎn)裁剪平面(near-far clipping plane,front-back clipping plane 前-后裁剪平面)構(gòu)成一有限的長方體正投影觀察體。yvxvzv(xwmax, ywmax)(xwmin, ywmin)觀察平面遠(yuǎn)平面近平面裁剪窗口7.6.3 裁剪窗口和正投影觀察體2022-7-4交通運輸學(xué)院CAD/CAM研究所277.6.4 規(guī)范化變換屏幕及顯示窗口通常采用左手坐標(biāo)系設(shè)規(guī)范化觀察體為左手坐標(biāo)系,范圍為(-1,-1,-1)(1,1,1)ysZsxs顯示窗口視口yvxvzv(xw

16、max, ywmax)(xwmin, ywmin)觀察平面(xwmin ,ywmin, znear)裁剪窗口(xwmax ,ywmax, zfar)ynznxn(-1,-1,-1)(1, 1, 1)規(guī)范化觀察體2022-7-4交通運輸學(xué)院CAD/CAM研究所281000200020002minmaxminmaxminmaxminmaxminmaxminmax,farnearfarnearfarnearnormortho-zzzz-zzywywywyw-ywywxwxwxwxw-xwxwM方法一:方法二: 相似矩形等比例變換相似矩形等比例變換2022-7-4交通運輸學(xué)院CAD/CAM研究所292

17、022-7-4交通運輸學(xué)院CAD/CAM研究所30三視圖qThree-view drawing(三視圖)Front(main) view(frontal projection, V-plane, xoz)Top view(horizontal projection, H-plane, xoy)Left side view(profile projection, W-plane, yoz)yxzxzxzUV-d1-d3掌握主視圖左視圖俯視圖2022-7-4交通運輸學(xué)院CAD/CAM研究所31主視圖Front(main) view(主視圖): (x y z 1) = Tv(x y z 1) =(x

18、 0 z 1) 1000010000000001Tv掌握yxzxzUV-d1-d3主視圖左視圖俯視圖Top view俯視圖變換方法:Project the object to H(xoy) projection plane(z=0);Rotate the projection plane -90o about the x axis; Translate the viewing d3 along z axis ;yxzxzUV-d1-d3矩陣變換:(x y z 1) =TH (x y z 1) 掌握主視圖左視圖俯視圖掌握yxz先投影到xy平面yxzyxz旋轉(zhuǎn)到xz平面沿z平移-d3距離最終結(jié)果y

19、xz-d31000010000000001Tv10000)90cos()90sin(00)90sin()90cos(00001Rx100010000100001T3zd矩陣變換: (x y z 1) = Tz Rx Tv (x y z 1) 2022-7-4交通運輸學(xué)院CAD/CAM研究所34Top view俯視圖100001000000001100000000010000110000)90cos()90sin(00)90sin()90cos(0000110001000010000133ddTH掌握矩陣變換: (x y z 1) = Tz Rx Tv (x y z 1) = (x 0 -y-

20、d3 1) TzRxTv 2022-7-4交通運輸學(xué)院CAD/CAM研究所35Top view俯視圖10000000100000110001000010000110000)90cos()90sin(00)90sin()90cos(00001100000000010000133ddTH矩陣變換:(x y z 1) = (x y z 1) TH = (x 0 -y- d3 1)采用幾何變換另外一種方法Left side view(左視圖)變換方法:Project the object to W(yoz) view plane (x=0)Rotate the projection plane 90o

21、 about the z axis;Translate the viewing -d1 along x axis ;yxzxzUV-d1-d3矩陣變換:(x y z 1)=(x y z 1)Tw=(-y- d1 0 z 1)掌握主視圖左視圖俯視圖yxz先投影到y(tǒng)z平面旋轉(zhuǎn)到xz平面沿x平移-d1距離最終結(jié)果1000010000100000Tv1000010000)90cos()90sin(00)90sin()90cos(Rz100001000010001T1xd矩陣變換: (x y z 1) = Tx Rz Tv (x y z 1) yxzyxzyxz-d1掌握Left side view(左

22、視圖)1000010000000101000010000100000100001000090cos90sin0090sin90cos10000100001000111ddTw掌握矩陣變換: (x y z 1) = Tx Rz Tv (x y z 1) Left side view(左視圖)100010000010000100010000100001100001000090cos90sin0090sin90cos100001000010000011ddTw矩陣變換:(x y z 1)=(x y z 1)Tw=(-y- d1 0 z 1)采用幾何變換另外一種方法如如左下圖,試推導(dǎo)出三面正投影變換中

23、側(cè)面投影(左視左下圖,試推導(dǎo)出三面正投影變換中側(cè)面投影(左視圖)的變換矩陣。主、左視圖間的距離為圖)的變換矩陣。主、左視圖間的距離為d3。(本題。(本題15分,只寫出結(jié)果者得分,只寫出結(jié)果者得2分)分)軸測正投影圖q Axonometric projection(軸測(正)投影) Rotate the object an angle about the z z axis;Rotate the object an angle about the -x-x axis;Project the object to V(xoz) view plane(y=0y=0). and 0。Transformat

24、ion result: (x y z 1)=(x y z 1)T =(xcos -ysin 0 -sin (x sin +ycos )+zcos 1)yxz1000010000000001Tv10000)cos()sin(00)sin()cos(00001Rx1000010000)cos()sin(00)sin()cos(Rz2022-7-4交通運輸學(xué)院CAD/CAM研究所42TT10000cos000sincos0sin0sinsin0cos1000010000cossin00sincos10000)cos()sin(00)sin()cos(000011000010000000001軸測正投

25、影圖掌握矩陣變換矩陣變換1: (x y z 1)=T (x y z 1)矩陣變換矩陣變換2: (x y z 1)=(x y z 1)Tyxz 2022-7-4交通運輸學(xué)院CAD/CAM研究所43正等測Isometric projection (等軸測投影)An arbitrary(任意的)set of and can generate a type of axonometric orthographic projection matrix.When =45 and =3516, we obtain isometric projection matrixTIsometricT10000816.0

26、000408.00707.00408.00707.0yxz 矩陣變換矩陣變換1: (x y z 1)=T (x y z 1)矩陣變換矩陣變換2: (x y z 1)=(x y z 1)T2022-7-4交通運輸學(xué)院CAD/CAM研究所447.7 Oblique Parallel Projections(斜投影)q Oblique projectionxvyvzv(x,y,z)(x,y)(xp,yp)LLztan1tanzLzLyyxxppsinLcosL + =Where L1 is the inverse tan, which is also the value of L when z=1.

27、 We can then write the oblique projection equations as )sin(),cos(11LzyyLzxxppLyyLxxppsin,cos112022-7-4交通運輸學(xué)院CAD/CAM研究所45 The transformation matrix for producing any parallel projection onto the xvyv plane can be written as100000000sin100cos01M11parallelLLAn orthographic projection is obtained when

28、L1=0 (which occurs at a projection angle of 90).Oblique projections are generated with nonzero values.PMPparallelv2022-7-4交通運輸學(xué)院CAD/CAM研究所46斜二測:Common choices for angle are 30 and 45, which display a combination (斜二測) view of the front, side, and top(or front, side, and bottom) of an object.斜等測:When

29、 tan=1, =45 and the views obtained are called cavalier(斜等測) projections. All lines perpendicular to the projection plane are projected with no change in length.Lztan1tanzLzL)sin(),cos(11LzyyLzxxpp100000000sin100cos01M11parallelLLPMPparallelv=30=45=45=30Cavalier projections of a cube onto a view plan

30、e for two values of angle .Cabinet projections of a cube onto a view plane for two values of angle .7.8 Perspective Projections(透視投影)7.8 Perspective Projections(透視投影)消除u透視坐標(biāo)系變換方法示意圖2022-7-4交通運輸學(xué)院CAD/CAM研究所52透視投影的滅點投影中心(視點)與投影平面之間的距離為有限。滅點:不平行于投影平面的平行線,經(jīng)過透視投影之后收斂于一點,稱為滅點。主滅點:平行于坐標(biāo)軸的平行線的滅點。一點透視兩點透視三點透

31、視主滅點數(shù)=投影面切割坐標(biāo)軸數(shù)。通過控制投影平面的朝向控制主滅點數(shù)。特點:產(chǎn)生近大遠(yuǎn)小的視覺效果,由它產(chǎn)生的圖形深度感強(qiáng),看起來更加真實。2022-7-4交通運輸學(xué)院CAD/CAM研究所532-point perspectivexzy3-point perspective滅點一點透視2022-7-4交通運輸學(xué)院CAD/CAM研究所54透視投影觀察體2022-7-4交通運輸學(xué)院CAD/CAM研究所552022-7-4交通運輸學(xué)院CAD/CAM研究所577.10 OpenGL三維觀察函數(shù)使用glMatrixMode(GL_MODELVIEW)和glMatrixMode(GL_PROJECTION)

32、分別設(shè)定建模觀察模式和投影模式默認(rèn)的OpenGL觀察設(shè)置是:觀察參考點P0(0,0,0)觀察方向由P0(0,0,0)指向Pref(0,0,-1),N=(0,0,1)觀察向上向量V=(0,1,0)OpenGL默認(rèn)的投影設(shè)置是:glOrtho(-1, 1, -1, 1, -1, 1); 即對稱規(guī)范化觀察體,正投影。OpenGL中觀察平面永遠(yuǎn)是近裁剪平面。2022-7-4交通運輸學(xué)院CAD/CAM研究所58xvzvyv11近裁剪平面遠(yuǎn)裁剪平面1裁剪窗口2022-7-4交通運輸學(xué)院CAD/CAM研究所597.10.1 OpenGL三維觀察函數(shù)視點變換(觀察參數(shù)設(shè)定)void gluLookAtgluL

33、ookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz);2022-7-4交通運輸學(xué)院CAD/CAM研究所60觀察參考點E、參考點C、向上向量U實際上就是設(shè)定了一個觀察坐標(biāo)系。這個觀察坐標(biāo)系的原點是E,N=E-C,視線的方向-N(即-z軸)是C-E,y軸方向就是視點向上的方向U,剩下的x軸方向就是向量(E-C) U)。由于y軸和x軸是垂直的,所以也要求向量(E-

34、C)和U互相垂直。這點在設(shè)置該函數(shù)參數(shù)時必須注意。 2022-7-4交通運輸學(xué)院CAD/CAM研究所617.10.2 OpenGL正投影函數(shù)void glOrthoglOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); 近裁剪平面(right, top, -near). (left, bottom, -near) 遠(yuǎn)裁剪平面 (left, bottom, -far) and (right, top, -far). Both nearnear and farfar can be positive or negative.2022-7-4交通運輸學(xué)院CAD/CAM研究所627.10.3 OpenGL對稱透視投影函數(shù)void gluPerspecti

溫馨提示

  • 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

提交評論