Chapter 10 Three-Dimensional Viewing (三维观察) 三维观察流水线 投影变换 OpenGL 三维观察函数 2019/5/18 交通运输学院CAD/CAM研究所
三维图形的基本研究内容: 1.三维形体的表示 2.投影 3.消除隐藏面与隐藏线 4.建立光照明模型、开发真实感图形绘制方法 三维场景观察 深度提示 可见线、面的判定 面绘制 分解和剖切视图 三维和立体视图 2019/5/18 交通运输学院CAD/CAM研究所
10.2 三维观察流水线 三维观察过程比二维观察过程要复杂得多。在二维观察过程中,我们只需要在二维世界坐 标系中指定一个窗口,将图形相对于窗口进行裁剪;然后,在设备坐标系中指定一个视口,再 将裁剪过的对象进行视窗变换,便可进行显示或其它的图形输出。在三维观察过程中,观察窗 口和物体是三维的,但显示平面是二维的,这种几何空间的维数的不匹配大大增加了三维观察 的难度。为了提高效率,不同的图形系统采用了各具特色的图形观察流水线。 要获得三维世界坐标系场景的显示,必须先建立观察用的坐标系、或称“照相机”坐标 系。该坐标系定义使照相机胶片平面对应观察坐标系的观察平面或称投影平面(View plane 或 projection plane)。然后将对象描述转换到观察坐标系,并投影到观察平面上。我们可以用线 框形式输出在设备上,或用光照和面绘制技术输出真实感图形。 2019/5/18 交通运输学院CAD/CAM研究所
二维观察 三维观察流水线的坐标系变化过程 掌握 建模变换 裁剪 视口变换 MC PC 实际物理 显示设备 WC NC VC DC 规范化变换和 裁剪 观察变换(3D) 视口变换 MC PC 投影变换 实际物理 显示设备 WC NC VC DC 二维观察 2019/5/18 交通运输学院CAD/CAM研究所
10.3 Viewing Coordinates(3D观察坐标系参数) Generating a view of an 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 “camera”. 怎样确定观察坐标系? 2019/5/18 交通运输学院CAD/CAM研究所
view-coordinate system (观察坐标系,also called view reference coordinate system,观察参考坐标系) 在世界坐标系中选定一点P0作为观察原点建立观察坐标系。 P0称为观察点或观察位置或视点 A view plane (观察平面,又称投影平面 projection plane), is set up perpendicular to the viewing zv axis. yw xw zw xv yv zv P0=(x0 ,y0 ,z0) 怎样确定观察平面(Zv)? 2019/5/18 交通运输学院CAD/CAM研究所
10.3.1 view-plane normal vector (观察平面法向量) 观察参考坐标系zv axis的正方向, view-plane normal vector (观察平面法向量), N. yw xw zw N yv xv zv P0 观察平面法向量确定方法? 2019/5/18 交通运输学院CAD/CAM研究所
方法2:指定一参考点Pref(look-at point, 注视点),参考点到观察原点的方向 投影平面 指定观察平面法向量N 方法1:世界坐标系原点到一指定点的方向 N=P0-Pref 方法2:指定一参考点Pref(look-at point, 注视点),参考点到观察原点的方向 zw yw xw yv xv zv P0 Pref N zw yw xw yv xv zv P0 P N N=P 其他方法: 如三维对象的直线边。
10.3.2 view-up vector (观察向上向量) VRP U VPN N VUP V VP yw xw zw N yv xv zv P0 观察向上向量: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. 通常在世界坐标系选定一点,因V必须垂直于N,原点到该点的方向经过调整作为V。 可选任意向量,只要不平行于N。方便的是yw 。 2019/5/18 交通运输学院CAD/CAM研究所
10.3.3 unv观察坐标系 xv axis :Using vectors N and V, the graphics package can compute a third vector U, perpendicular to both N and V, to define the direction for the xv axis. uvn 坐标系:These computation are conveniently carried out with unit axis vectors. The viewing system is then often described as a uvn. system. yv xv zv u v n yw xw zw N yv xv zv P0 单位规范化 2019/5/18 交通运输学院CAD/CAM研究所
10.3.4 生成三维观察效果 2019/5/18 交通运输学院CAD/CAM研究所
10.4 从世界坐标到观察坐标的变换 yw xw zw yw xw zw yw xw zw 重要 10.4 从世界坐标到观察坐标的变换 yw xw zw xv yv zv (x0 ,y0 ,z0) yw xw zw xv yv zv yw xw zw xv yv zv R T 平移 旋转R= Rz·Ry·Rx (x’ y’ z’ 1) ’ =R·T·(x y z 1) ’ 向量夹角计算公式
uvn Viewing Coordinates VRP U VPN N VUP V VP
从世界坐标到观察坐标的矩阵变换 Mwc,vc=R·T (x’ y’ z’ 1) ’ = R·T·(x y z 1) ’ 掌握 从世界坐标到观察坐标的矩阵变换 Mwc,vc=R·T 平移 旋转R= Rz·Ry·Rx (x’ y’ z’ 1) ’ = R·T·(x y z 1) ’
其中:
(x’ y’ z’ 1) ’ =R·T·(x y z 1) ’ 2019/5/18 交通运输学院CAD/CAM研究所
10.5 投影变换 Parallel Projections(平行投影) Perspective Projections(透视投影) orthographic parallel projection(正平行投影,正投影). oblique parallel projection(斜平行投影). 2019/5/18 交通运输学院CAD/CAM研究所
Parallel Projections(平行投影例子) 正投影 轴测正投影 正投影 斜投影 斜投影
10.6 Orthographic Projections(正投影) Top view Side view Front view
Top view Side view Front view 正投影 斜投影 Top view Side view Front view axonometric orthographic projections (轴测正投影). isometric projection (等轴测投影). 三视图(top,side,front).
10.6.2 正投影坐标系 若投影方向平行于zv,则任意位置(x,y,z)的投影坐标为: xp=x, yp=y yv xv zv (x, y, z) (x, y) 2019/5/18 交通运输学院CAD/CAM研究所
10.6.3裁剪窗口和正投影观察体 裁剪窗口的边指定了场景要显示部分的x和y的限制范围。 裁剪窗口的边与投影线共同形成一无限观察体。 观察平面 yv zv (xwmax, ywmax) (xwmin, ywmin) xv 2019/5/18 交通运输学院CAD/CAM研究所
裁剪窗口和正投影观察体 增加近裁剪平面和远裁剪平面(near-far clipping plane,front-back clipping plane 前-后裁剪平面)构成一有限的长方体——正投影观察体。 yv xv zv (xwmax, ywmax) (xwmin, ywmin) 观察平面 远平面 近平面 裁剪窗口 2019/5/18 交通运输学院CAD/CAM研究所
10.6.4 规范化变换 ys 重要 xs Zs 屏幕及显示窗口通常采用左手坐标系 视口 屏幕及显示窗口通常采用左手坐标系 设规范化观察体为左手坐标系,范围为(-1,-1,-1)(1,1,1) yv xv zv (xwmax, ywmax) (xwmin, ywmin) 观察平面 (xwmin ,ywmin, znear) 裁剪窗口 (xwmax ,ywmax, zfar) yn zn xn (-1,-1,-1) (1, 1, 1) 规范化观察体 2019/5/18 交通运输学院CAD/CAM研究所
方法一: 相似矩形等比例变换 方法二: 2019/5/18 交通运输学院CAD/CAM研究所
重要 2019/5/18 交通运输学院CAD/CAM研究所
三视图 Three-view drawing(三视图) 新增内容必须掌握 正投影 斜投影 Three-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) 俯视图 x z U V -d1 -d3 左视图 y x z x z 主视图 主视图 左视图 俯视图 2019/5/18 交通运输学院CAD/CAM研究所
(1)主视图 Front(main) view(主视图): 掌握 Front(main) view(主视图): (x’ y’ z’ 1) ’ = Tv·(x y z 1) ’ =(x 0 z 1) y x z x z U V -d1 -d3 左视图 主视图 俯视图 2019/5/18 交通运输学院CAD/CAM研究所
(2) Top view俯视图 z V z y x x U 矩阵变换: (x’ y’ z’ 1) ’ =TH· (x y z 1) ’ 掌握 变换方法: 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 ; x z U V -d1 -d3 y x z 主视图 左视图 俯视图 矩阵变换: (x’ y’ z’ 1) ’ =TH· (x y z 1) ’
矩阵变换: (x’ y’ z’ 1) ’ = Tz · Rx · Tv · (x y z 1) ’ 掌握 y x z 先投影到xy平面 旋转到xz平面 y x z 最终结果 y x z -d3 沿z平移-d3距离 矩阵变换: (x’ y’ z’ 1) ’ = Tz · Rx · Tv · (x y z 1) ’
Top view俯视图 掌握 Rx Tv Tz 矩阵变换: (x’ y’ z’ 1) ’ = Tz · Rx · Tv · (x y z 1) ’ = (x 0 -y- d3 1) ’ 2019/5/18 交通运输学院CAD/CAM研究所
Top view俯视图 采用几何变换另外一种方法 矩阵变换: (x’ y’ z’ 1) = (x y z 1) ·TH = (x 0 -y- d3 1) 2019/5/18 交通运输学院CAD/CAM研究所
(3) Left side view(左视图) 变换方法: 掌握 变换方法: Project the object to W(yoz) view plane (x=0) Rotate the projection plane 90o about the z axis; Translate the viewing -d1 along x axis ; y x z x z U V -d1 -d3 主视图 左视图 俯视图 矩阵变换: (x’ y’ z’ 1)=(x y z 1)·Tw=(-y- d1 0 z 1)
矩阵变换: (x’ y’ z’ 1) ’ = Tx · Rz · Tv · (x y z 1) ’ 掌握 先投影到yz平面 y x z 旋转到xz平面 y x z 最终结果 -d1 沿x平移-d1距离 矩阵变换: (x’ y’ z’ 1) ’ = Tx · Rz · Tv · (x y z 1) ’
Left side view(左视图) 矩阵变换: (x’ y’ z’ 1) ’ = Tx · Rz · Tv · (x y z 1) ’ 掌握 Left side view(左视图) 矩阵变换: (x’ y’ z’ 1) ’ = Tx · Rz · Tv · (x y z 1) ’
Left side view(左视图) 采用几何变换另外一种方法 矩阵变换: (x’ y’ z’ 1)=(x y z 1)·Tw=(-y- d1 0 z 1)
如左下图,试推导出三面正投影变换中侧面投影(左视图/俯视图)的变换矩阵。主、左视图间的距离为d3。(本题15分,只写出结果者得2分) y y 可选 x z x x z
轴测正投影图 Axonometric projection(轴测(正)投影) 补充 轴测正投影图 Axonometric projection(轴测(正)投影) Rotate the object an angle about the z axis; Rotate the object an angle about the -x axis; Project the object to V(xoz) view plane(y=0). and >0。 Transformation result: (x’ y’ z’ 1)=(x y z 1)·T =(xcos-ysin 0 -sin(x sin+ycos)+zcos 1) y x z
轴测正投影图 z y x 矩阵变换1: (x’ y’ z’ 1)=T · (x y z 1) 矩阵变换2: (x’ y’ z’ 1)=(x y z 1)·T’ 2019/5/18 交通运输学院CAD/CAM研究所
正等测 Isometric projection (等轴测投影) An arbitrary(任意的)set of and can generate a type of axonometric orthographic projection matrix. When =45 and =3516’, we obtain isometric projection matrix y x z 矩阵变换1: (x’ y’ z’ 1)=T · (x y z 1) 矩阵变换2: (x’ y’ z’ 1)=(x y z 1)·T’ 2019/5/18 交通运输学院CAD/CAM研究所
10.6正投影 10.7 斜投影 2019/5/18 交通运输学院CAD/CAM研究所
10.7 Oblique Parallel Projections(斜投影) Oblique projection xv yv zv (x,y,z) (x,y) (xp,yp) Φ α L Where L1 is the inverse tan, which is also the value of L when z=1. We can then write the oblique projection equations as 2019/5/18 交通运输学院CAD/CAM研究所
The transformation matrix for producing any parallel projection onto the xvyv plane can be written as An orthographic projection is obtained when L1=0 (which occurs at a projection angle of 90°). Oblique projections are generated with nonzero values. 2019/5/18 交通运输学院CAD/CAM研究所
10.7.2 斜等测和斜二测 斜二测: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 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. 2019/5/18 交通运输学院CAD/CAM研究所
Ф=45° Ф=30° Cavalier projections of a cube onto a view plane for two values of angle Φ. Ф=45° Ф=30° Cabinet projections of a cube onto a view plane for two values of angle Φ.
10.8 Perspective Projections(透视投影)
u=0 u=1 u 构造【观察平面】参数化方程: 由于【观察平面】上,zvp需始终不变 投影变换公式为: 透视坐标系变换方法
示意图
透视投影的灭点 投影中心(视点)与投影平面之间的距离为有限。 灭点:不平行于投影平面的平行线,经过透视投影之后收敛于一点,称为灭点。 主灭点:平行于坐标轴的平行线的灭点。 一点透视 两点透视 三点透视 主灭点数=投影面切割坐标轴数。通过控制投影平面的朝向控制主灭点数。 特点:产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。 2019/5/18 交通运输学院CAD/CAM研究所
y x z 2-point perspective 3-point perspective 灭点 一点透视 2019/5/18 交通运输学院CAD/CAM研究所
透视投影观察体 2019/5/18 交通运输学院CAD/CAM研究所
2019/5/18 交通运输学院CAD/CAM研究所