第七章 三维观察2计算机图形学_第1页
第七章 三维观察2计算机图形学_第2页
第七章 三维观察2计算机图形学_第3页
第七章 三维观察2计算机图形学_第4页
第七章 三维观察2计算机图形学_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Three-Dimensional Viewing(三维观察)三维观察流水线投影变换OpenGL 三维观察函数2022-7-4交通运输学院CAD/CAM研究所1三维图形的基本研究内容:1.三维形体的表示2.投影3.消除隐藏面与隐藏线4.建立光照明模型、开发真实感图形绘制方法2022-7-4交通运输学院CAD/CAM研究所27.1 三维观察概念综述三维场景观察投影深度提示可见线、面的判定面绘制分解和剖切视图三维和立体视图2022-7-4交通运输学院CAD/CAM研究所32022-7-4交通运输学院CAD/CAM研究所47.2 三维观察流水线三维观察过程比二维观察过程要复杂得多。在二维观察过程中,

2、我们只需要在二维世界坐标系中指定一个窗口,将图形相对于窗口进行裁剪;然后,在设备坐标系中指定一个视口,再将裁剪过的对象进行视窗变换,便可进行显示或其它的图形输出。在三维观察过程中,观察窗在三维观察过程中,观察窗口和物体是三维的,但显示平面是二维的,口和物体是三维的,但显示平面是二维的,这种几何空间的维数的不匹配大大增加了三维观察的难度。为了提高效率,不同的图形系统采用了各具特色的图形观察流水线。要获得三维世界坐标系场景的显示,必须先建立观察用的坐标系、或称建立观察用的坐标系、或称“照相机照相机”坐标坐标系。该坐标系定义使照相机胶片平面对应观察坐标系的观察平面或称投影平面系。该坐标系定义使照相机

3、胶片平面对应观察坐标系的观察平面或称投影平面(View plane 或或projection plane)。然后将对象描述转换到观察坐标系,并投影到观察平面上。我们可以用线框形式输出在设备上,或用光照和面绘制技术输出真实感图形。2022-7-4交通运输学院CAD/CAM研究所5三维观察流水线的坐标系变化过程投影变换投影变换实际物理显示设备VCDCMCPC建模变换规范化变换和裁剪观察观察变换变换(3D)视口变换WCNC掌握二二维维观观察察2022-7-4交通运输学院CAD/CAM研究所67.3 Viewing Coordinates(3D观察坐标)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交通运输学院CAD/CAM研究所7view-coordi

5、nate system (观察坐标系,also called view reference coordinate system,观察参考坐标系)在世界坐标系中选定一点P0作为观察原点建立观察坐标系。P0称为观察点或观察位置或视点A view plane (观察平面,又称投影平面 projection plane), is set up perpendicular to the viewing zv axis.ywxwzwxvyvzvP0=(x0 ,y0 ,z0)怎样确定观察点怎样确定观察点P0 ,投影平面(,投影平面(Zv)?2022-7-4交通运输学院CAD/CAM研究所87.3.1 vie

6、w-plane normal vector (观察平面法向量)观察参考坐标系zv axis的正方向, view-plane normal vector (观察平面法向量), N N.ywxwzwNyvxvzvP0投影平面投影平面9N=P0-PrefN=P指定观察平面法向量N方法1:世界坐标系原点到一指定点的方向方法2:指定一参考点Pref(look-at point, 注视点),参考点到观察原点的方向zwywxwyvxvzvP0PNzwywxwyvxvzvP0PrefN其他方法,如三维对象的直线边。其他方法,如三维对象的直线边。投影平面投影平面2022-7-4交通运输学院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交通运输学院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通常在世界坐标系选定一点,因V必须垂直于N,原点到该点的方向经过调整作为V。n可选任意向量,只要不平行于N。方便的是yw 。VRPUVPNNVUPVVPywxwzwNyvxvzvP020

9、22-7-4交通运输学院CAD/CAM研究所127.3.3 观察坐标系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 坐标系:坐标系:These computation are conveniently carried out with unit axis vectors. The v

10、iewing system is then often described as a uvn. system.yvxvzvuvn单位规范化ywxwzwNyvxvzvP07.4 从世界坐标到观察坐标的变换ywxwzwxvyvzv(x0 ,y0 ,z0)ywxwzwxvyvzvywxwzwxvyvzvTR1000010000100001Tzyx平移旋转R= RzRyRx重要向量夹角计算公式n(x y z 1) =RT(x y z 1) 2022-7-414计算单位uvn向量,直接形成复合旋转矩阵。给定N和V,则其单位向量为:),(NNn321nnn),(NVNVu321uuu),(unv321vv

11、vVRPUVPNNVUPVVPuvn Viewing Coordinates1000000R321321321nnnvvvuuunMwc,vc=RT7.4 从世界坐标到观察坐标的变换1000010000100001Tzyx1000010000100001Tzyx平移旋转R= RzRyRx掌握n(x y z 1) = RT(x y z 1) 2022-7-4交通运输学院CAD/CAM研究所16其中:1000000,PnnnnPvvvvPuuuuTRMzyxzyxzyxvcwczyxzyxzyxnznynxPnvzvyvxPvuzuyuxPu0000000000002022-7-4交通运输学院CA

12、D/CAM研究所17n(x y z 1) =RT(x y z 1) 平面几何投影平行投影透视投影正投影斜投影三视图正轴测斜等测斜二测正等测正二测正三测主视图侧视图俯视图一点透视二点透视三点透视图7-3 平面几何投影的分类平面几何投影2022-7-4交通运输学院CAD/CAM研究所197.5 投影变换Parallel Projections(平行投影)Perspective Projections(透视投影)2022-7-4交通运输学院CAD/CAM研究所20Parallel Projections(平行投影)orthographic parallel projection(正平行投影,正投影)

13、.oblique parallel projection(斜平行投影).vpOrthographic ProjectionvpOblique Projection2022-7-4交通运输学院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交通运输学院CAD/CAM研究所247.6.2 正投影坐标系若投影方向平行于zv,则任意位置(x,y,z)的投影坐标为:xp=x, yp=y任何投影变换中z坐标值被保存在深度缓存器中,用于可见性检测。yvxvzv(x, y, z)(x, y)2022-7-4交通运输学院CAD/CAM研究所257.6.3 裁剪窗口和正投影观察体裁剪窗口的边指定了场景要显示部分的x和y的限制范围。裁剪窗口的边与投影线共同形成一无限观察体。yvxvzv(xwmax, ywmax)(xwmi

15、n, ywmin)观察平面2022-7-4交通运输学院CAD/CAM研究所26增加近裁剪平面和远裁剪平面(near-far clipping plane,front-back clipping plane 前-后裁剪平面)构成一有限的长方体正投影观察体。yvxvzv(xwmax, ywmax)(xwmin, ywmin)观察平面远平面近平面裁剪窗口7.6.3 裁剪窗口和正投影观察体2022-7-4交通运输学院CAD/CAM研究所277.6.4 规范化变换屏幕及显示窗口通常采用左手坐标系设规范化观察体为左手坐标系,范围为(-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)规范化观察体2022-7-4交通运输学院CAD/CAM研究所281000200020002minmaxminmaxminmaxminmaxminmaxminmax,farnearfarnearfarnearnormortho-zzzz-zzywywywyw-ywywxwxwxwxw-xwxwM方法一:方法二: 相似矩形等比例变换相似矩形等比例变换2022-7-4交通运输学院CAD/CAM研究所292

17、022-7-4交通运输学院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交通运输学院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旋转到xz平面沿z平移-d3距离最终结果y

19、xz-d31000010000000001Tv10000)90cos()90sin(00)90sin()90cos(00001Rx100010000100001T3zd矩阵变换: (x y z 1) = Tz Rx Tv (x y z 1) 2022-7-4交通运输学院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交通运输学院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先投影到yz平面旋转到xz平面沿x平移-d1距离最终结果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)采用几何变换另外一种方法如如左下图,试推导出三面正投影变换中

23、侧面投影(左视左下图,试推导出三面正投影变换中侧面投影(左视图)的变换矩阵。主、左视图间的距离为图)的变换矩阵。主、左视图间的距离为d3。(本题。(本题15分,只写出结果者得分,只写出结果者得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交通运输学院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交通运输学院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交通运输学院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交通运输学院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交通运输学院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透视坐标系变换方法示意图2022-7-4交通运输学院CAD/CAM研究所52透视投影的灭点投影中心(视点)与投影平面之间的距离为有限。灭点:不平行于投影平面的平行线,经过透视投影之后收敛于一点,称为灭点。主灭点:平行于坐标轴的平行线的灭点。一点透视两点透视三点透

31、视主灭点数=投影面切割坐标轴数。通过控制投影平面的朝向控制主灭点数。特点:产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。2022-7-4交通运输学院CAD/CAM研究所532-point perspectivexzy3-point perspective灭点一点透视2022-7-4交通运输学院CAD/CAM研究所54透视投影观察体2022-7-4交通运输学院CAD/CAM研究所552022-7-4交通运输学院CAD/CAM研究所577.10 OpenGL三维观察函数使用glMatrixMode(GL_MODELVIEW)和glMatrixMode(GL_PROJECTION)

32、分别设定建模观察模式和投影模式默认的OpenGL观察设置是:观察参考点P0(0,0,0)观察方向由P0(0,0,0)指向Pref(0,0,-1),N=(0,0,1)观察向上向量V=(0,1,0)OpenGL默认的投影设置是:glOrtho(-1, 1, -1, 1, -1, 1); 即对称规范化观察体,正投影。OpenGL中观察平面永远是近裁剪平面。2022-7-4交通运输学院CAD/CAM研究所58xvzvyv11近裁剪平面远裁剪平面1裁剪窗口2022-7-4交通运输学院CAD/CAM研究所597.10.1 OpenGL三维观察函数视点变换(观察参数设定)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交通运输学院CAD/CAM研究所60观察参考点E、参考点C、向上向量U实际上就是设定了一个观察坐标系。这个观察坐标系的原点是E,N=E-C,视线的方向-N(即-z轴)是C-E,y轴方向就是视点向上的方向U,剩下的x轴方向就是向量(E-C) U)。由于y轴和x轴是垂直的,所以也要求向量(E-

34、C)和U互相垂直。这点在设置该函数参数时必须注意。 2022-7-4交通运输学院CAD/CAM研究所617.10.2 OpenGL正投影函数void glOrthoglOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); 近裁剪平面(right, top, -near). (left, bottom, -near) 远裁剪平面 (left, bottom, -far) and (right, top, -far). Both nearnear and farfar can be positive or negative.2022-7-4交通运输学院CAD/CAM研究所627.10.3 OpenGL对称透视投影函数void gluPerspecti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论