Presentation is loading. Please wait.

Presentation is loading. Please wait.

3D Viewing Lectured by Hua Yan.

Similar presentations


Presentation on theme: "3D Viewing Lectured by Hua Yan."— Presentation transcript:

1 3D Viewing Lectured by Hua Yan

2

3 Contents 3D Display Method 3D Viewing Pipeline 3D Viewing Coordinate
3D Projection Transformation 3D View Volume 3D Clipping 在二维图形应用中,观察操作将世界平面上的点变换到输出设备上 利用世界坐标系中的窗口和设备上的视口,二维图形软件包将世界坐标系中的物体映射到设备坐标系并用视口的四条边来裁剪 对三维图形应用而言,由于对视图如何产生有更多的选择,因此涉及情况会更多 可以从空间中任意位置观察物体:从前面、后面、上面、下面以及从物体内部 三维物体描述必须经过投影到输出设备的观察平面上。此时裁剪边界变成一个体,而非一个面,其形状依赖于选择的投影类型

4 3D Display Methods Projection投影 Depth Cuing 深度提示
Parallel Projection 平行投影 Perspective Projection 透视投影 Depth Cuing 深度提示 Visible Line & Surface Identification Surface Rendering表面绘制 分解图和剖面图 三维和立体视图

5 Projection 平行投影 将物体表面上的点沿平行线投影到显示平台上 三维场景中的平行线在投影到二维显示平面中后仍然是平行线
工程和建筑设计常用此技术 透视投影 沿会聚路径将点投影到显示平面上 远小近大 平行线投影后成了会聚线 显示场景更加真实

6 Parallel Projection

7 Perspective Projection

8 Depth Cuing Idea 根据物体与观察位置的距离改变物体的亮度, 模拟物体可视亮度的大气效果,即近亮远暗。 彩页10 图 7-6

9 Visible Line & Surface Identification
可见线、面标识 突出可见线或以不同的颜色来显示 使用虚线来显示不可见线 二义性

10 表面绘制 Idea 根据场景中的光线条件及根据指定表面的特性来建立物体表面的亮度,可以获得额外的显示真实性
物体表面的性质:透明程度和表面的粗糙、平滑程度

11 Surface Rendering Added realism is attained in displays by setting the surface intensity of objects according to the lighting conditions in the scene and according to assigned surface characteristics. Lighting specifications include the intensity and positions of light sources and the general background illumination required for a scene. Surface properties of objects include degree of transparency and how rough or smooth the surfaces are to be.

12 Surface Rendering

13 Contents 3D Display Method 3D Viewing Pipeline 3D Viewing Coordinate
3D Projection Transformation 3D View Volume 3D Clipping 在二维图形应用中,观察操作将世界平面上的点变换到输出设备上 利用世界坐标系中的窗口和设备上的视口,二维图形软件包将世界坐标系中的物体映射到设备坐标系并用视口的四条边来裁剪 对三维图形应用而言,由于对视图如何产生有更多的选择,因此涉及情况会更多 可以从空间中任意位置观察物体:从前面、后面、上面、下面以及从物体内部 三维物体描述必须经过投影到输出设备的观察平面上。此时裁剪边界变成一个体,而非一个面,其形状依赖于选择的投影类型

14 3D Viewing Pipeline WC 观察变换 建模变换 MC 投影变换 VC 视口变换 NC DC 规范化变换和裁剪 PC

15 Contents 3D Display Method 3D Viewing Pipeline 3D Viewing Coordinate
3D Projection Transformation 3D View Volume 3D Clipping 在二维图形应用中,观察操作将世界平面上的点变换到输出设备上 利用世界坐标系中的窗口和设备上的视口,二维图形软件包将世界坐标系中的物体映射到设备坐标系并用视口的四条边来裁剪 对三维图形应用而言,由于对视图如何产生有更多的选择,因此涉及情况会更多 可以从空间中任意位置观察物体:从前面、后面、上面、下面以及从物体内部 三维物体描述必须经过投影到输出设备的观察平面上。此时裁剪边界变成一个体,而非一个面,其形状依赖于选择的投影类型

16 3D Viewing Coordinate yv yw xv zv 观察平面和观察坐标系的确定 xw
zw xv yv zv P0 3D Viewing Coordinate 观察平面和观察坐标系的确定 观察平面:也叫投影平面 观察坐标系 用来指定观察者的观察位置及投影平面的参照系 观察坐标系(Xv, Yv, Zv)的建立: 观察参考点P0(x0, y0,z0) 观察平面法向量N:观察Zv轴的正方向和观察平面方向 向量V → 观察向上向量:建立Yv轴的正方向,将V在观察平面上投影,即可得到Yv轴 利用右手原则得到Xv轴 实际生活中,为在不同的距离和角度上拍摄物体,我们既可以移动物体,也可以保持物体不动而移动照相机。 拍摄结果只和物体与照像机之间的相对位置有关。 物体所在的坐标系是世界坐标系(wc),投影平面与投影中心也是在世界坐标系中指定的。 但是在世界坐标系中,为了获得物体某个角度的投影。所指定的投影平面和投影中心的表示可能很复杂,导致投影变换十分复杂。 此时,我们可以依赖于投影平面(照像机的底片)建立—个三维坐标系称为观察坐标系(VRC),使得在VRC中,投影平面、投影中心的表示简单,这样就简化了投影变换。 但带来的负作用是,在投影前必须首先将物体从世界坐标系变换到观察坐标系中来。 下面讨论如何建立观察坐标系

17

18 World to Viewing Coordinate
WC-VC Transformation xw yw zw xv yv zv N V U 实际生活中,为在不同的距离和角度上拍摄物体,我们既可以移动物体,也可以保持物体不动而移动照相机。 拍摄结果只和物体与照像机之间的相对位置有关。 物体所在的坐标系是世界坐标系(wc),投影平面与投影中心也是在世界坐标系中指定的。 但是在世界坐标系中,为了获得物体某个角度的投影。所指定的投影平面和投影中心的表示可能很复杂,导致投影变换十分复杂。 此时,我们可以依赖于投影平面(照像机的底片)建立—个三维坐标系称为观察坐标系(VRC),使得在VRC中,投影平面、投影中心的表示简单,这样就简化了投影变换。 但带来的负作用是,在投影前必须首先将物体从世界坐标系变换到观察坐标系中来。 下面讨论如何建立观察坐标系 World to Viewing Coordinate

19 世界坐标->观察坐标的变换 xw yw zw xv yv zv xw yw zw xv yv zv xw yw zw xv yv zv
RZ M= RZ RY RX T xw yw zw xv yv zv xw yw zw xv yv zv xw yw zw xv yv zv RY T RX

20 Contents 3D Display Method 3D Viewing Pipeline 3D Viewing Coordinate
3D Projection Transformation 3D View Volume 3D Clipping 在二维图形应用中,观察操作将世界平面上的点变换到输出设备上 利用世界坐标系中的窗口和设备上的视口,二维图形软件包将世界坐标系中的物体映射到设备坐标系并用视口的四条边来裁剪 对三维图形应用而言,由于对视图如何产生有更多的选择,因此涉及情况会更多 可以从空间中任意位置观察物体:从前面、后面、上面、下面以及从物体内部 三维物体描述必须经过投影到输出设备的观察平面上。此时裁剪边界变成一个体,而非一个面,其形状依赖于选择的投影类型

21 3D Projection Transformation
Def. Transform points from 3D to 2D Types 为解决在二维设备上显示三维图形对象的问题,可借鉴照相机的成像过程在拍照时,将镜头对准所选景物,按下快门,景物就被记录在二维的胶片上 投影指的就是这种将三维物体转换为二维图形的过程。

22 投影分类 平行投影:坐标位置沿平行线变换到观察平面上 透视投影:物体位置沿收敛于某点的直接变换到观察平面
当投影射线彼此平行时的投影为平行投影,否则为透视投影。

23 正投影 正平行投影 正轴测投影 平行投影 斜平行投影 投影 正等轴测投影 一点透视 正二轴测投影 透视投影 二点透视 正三轴测投影 三点透视

24 正投影:投影向量垂直于观察平面 斜投影:不垂直
当投影射线彼此平行时的投影为平行投影,此时如果投影射线与投影平面垂直则为正投影,否则为斜投影。正投影时如果投影平面是三个坐标平面其中一个,则为正三面投影,即我们常说的三视图

25 正投影 正三面投影:三视图(正视图、俯视图、侧视图),投影平面法向量与三个坐标轴一个平行 轴测正投影:显示物体多个侧面的正投影
等轴测投影:投影平面与每个坐标轴的交点离原点距离相等(P296 Fig 7.25)

26 Examples 三视图

27 斜投影 斜等测投影:α等于45°,生成的视图。所有垂直于投影平面的线条投影后长度不变
斜二测投影:投影角满足tanα=2(63.4 °),生成的视图。垂直于投影平面的线条投影后得到一半长度。

28 Examples 轴侧正投影 正投影 斜投影

29 投影变换矩阵 正平行投影 xp=x yp=y zp=0 ú û ù ê ë é = 1 M

30 yv xv zv 斜平行投影 xp=x+LcosФ yp=y+LsinФ Zp=0 L=z/tanα=zL1 xp=x+zL1cosФ
(x,y,z) (x,y) (xp,yp) Ф α L 斜平行投影 xp=x+LcosФ yp=y+LsinФ Zp=0 L=z/tanα=zL1 xp=x+zL1cosФ yp=y+zL1sinФ Tana=无穷 正投影 Tana = 1 斜等侧 Tana =2 斜二侧

31 斜平行投影变换矩阵 L1cosφ 0 L1sinφ 0 M =

32 透视投影变换矩阵 投影中心COP -- 也叫投影参考点PRP 投影平面(也叫观察平面VP)
投影线(也叫视线):是从投影中心发出的,是不平行的

33 yv 投影点坐标计算 xv zv P(x,y,z) 写出直线参数方程 利用投影平面方程,求出参数u (xp,yp) 求出投影点坐标
Q(0,0,zprp) 投影点坐标计算 写出直线参数方程 利用投影平面方程,求出参数u 求出投影点坐标 Center of Projection COP, Projection plane & Object Transformation Matrix

34 u=(zvp-z)/(zprp-z) zv zvp zprp 将u代入参数方程计算出xp,yp x’=x+(0-x)u p(x,y,z)
y’=y+(0-y)u z’=z+(zprp-z)u zp=zvp => u=(zvp-z)/(zprp-z) 将u代入参数方程计算出xp,yp zv zvp p(x,y,z) zprp dp

35 zv zvp xp= x*(zprp-zvp)/(zprp-z) = x*dp/(zprp-z)
yp= y*(zprp-zvp)/(zprp-z) = y*dp/(zprp-z) zp= zvp 投影参考点不在Z轴上? zv zvp p(x,y,z) q(xprp, yprp ,zprp)

36 Example:在三维坐标系下一点P(1,5,-10),以XOY平面作为投影平面。 1)若采用平行投影技术,试计算其正投影点PV的坐标。
2)若采用透视投影技术,以Q(0,0,8)为投影中心,试计算其透视投影点Pw的坐标。 Example: p(1,5,-10), Q(0,0,8), projection plane is XOY plane X=1-u Y=5-5u Z=-10+18u Zp=0 => u=5/9 Xp=4/9, yp=20/9

37 透视投影类型 灭点:3D物体的一组平行线投影后收敛于一点,此点称为灭点。 主灭点:3D物体平行于坐标轴的平行线收敛产生的灭点->主灭点
一点、二点、三点透视(P348) 如何控制主灭点数目?(投影平面与坐标轴的相交的数目) Types Vanishing Point & Principal Vanishing Point One-point, Two-point & Three-point Perspective Projection How to control

38 一点透视 vp

39 二点透视

40 三点透视

41 一点透视 三点透视 二点透视

42 Contents 3D Display Method 3D Viewing Pipeline 3D Viewing Coordinate
3D Projection Transformation 3D View Volume 3D Clipping 在二维图形应用中,观察操作将世界平面上的点变换到输出设备上 利用世界坐标系中的窗口和设备上的视口,二维图形软件包将世界坐标系中的物体映射到设备坐标系并用视口的四条边来裁剪 对三维图形应用而言,由于对视图如何产生有更多的选择,因此涉及情况会更多 可以从空间中任意位置观察物体:从前面、后面、上面、下面以及从物体内部 三维物体描述必须经过投影到输出设备的观察平面上。此时裁剪边界变成一个体,而非一个面,其形状依赖于选择的投影类型

43 对三维物体进行裁剪, 只有在观察体内的物体才会被投影到投影平面窗口内显示出来
3D View Volume 观察体:3D图形选取Window 观察体的作用 对三维物体进行裁剪, 只有在观察体内的物体才会被投影到投影平面窗口内显示出来 如何设置? 利用投影窗口边界来设置。 投影窗口:投影(观察)平面上的矩形选景窗口 为解决在二维设备上显示三维图形对象的问题,可借鉴照相机的成像过程在拍照时,将镜头对准所选景物,按下快门,景物就被记录在二维的胶片上 投影指的就是这种将三维物体转换为二维图形的过程。

44 观察体类型 无限型和有限型 无限型观察体 无穷平行管道 棱锥 投影窗口 COP

45 通过指定平行于投影平面的前、后平面来实现
有限观察体 通过指定平行于投影平面的前、后平面来实现 作用:去掉离投影平面过近和过远的物体 类型有: 矩形平行六面体 斜平行六面体 棱台 后平面 前平面 投影窗口 COP

46 前后平面与观察平面的位置关系 zv 观察平面 后平面 前平面 zv 后平面 观察平面 前平面 zv 后平面=观察平面 前平面

47 观察平面位置与投影效果的关系 正平行投影:不受观察平面位置的影响 斜平行投影 透视投影

48 观察体调整 调整目的 调整的意义 计算、处理方便快捷 如何调整? z y x

49 观察体调整 正平行投影 观察体为正平行六面体,不用调整 斜平行投影和透视投影的观察体均需要调整

50 平行投影变换的观察体调整 斜投影 正投影 窗口 N Zv 投影向量Vp 窗口 N Zv 投影向量V'p Z轴错切 斜平行六面体观察体
矩形平行六面体观察体 px/pz 0 py/pz 0 Mp=

51 透视投影变换的观察体调整 (x'',y'',z'') 投影向量Vp' 投影向量Vp (x',y',z') (x,y,z) Zvp Zvp
COP(xprp,yprp,zprp) COP (xprp,'yprp',zprp) 缩放系数随着z的不同而变化

52 Contents 3D Display Method 3D Viewing Pipeline 3D Viewing Coordinate
3D Projection Transformation 3D View Volume 3D Clipping 在二维图形应用中,观察操作将世界平面上的点变换到输出设备上 利用世界坐标系中的窗口和设备上的视口,二维图形软件包将世界坐标系中的物体映射到设备坐标系并用视口的四条边来裁剪 对三维图形应用而言,由于对视图如何产生有更多的选择,因此涉及情况会更多 可以从空间中任意位置观察物体:从前面、后面、上面、下面以及从物体内部 三维物体描述必须经过投影到输出设备的观察平面上。此时裁剪边界变成一个体,而非一个面,其形状依赖于选择的投影类型

53 3D Clipping 裁剪窗口 裁剪的方法 平面方程裁剪 编码裁剪 参数方程裁剪
观察体是三维裁剪窗口。在三维空间中,图形关于观察体的裁剪类似于在二维空间中图形关于二维窗口的裁剪。事实上,前面所讲的裁剪方法大都可以直接推广到三维的情况。例如,裁剪直线段的Liang-Barsky方法中的一维诱导窗口的概念可以推广到三维的情况,从而将三维裁剪问题化为一维裁剪问题来解决。裁剪多边形的Sutherland-Hodgeman算法中的逐边裁剪思想也可以推广到三维,只不过现在不再是“逐边裁剪”,而且“逐面裁剪”。这种推广并没有太多地增加算法的复杂度,只不过是求交的计算量略有增加。

54 3D Clipping 三维裁剪的裁剪窗口 是一个六面体,包括左侧面、右侧面、顶面、底面、前面和后面 y y z x x 后面 顶面 右面
左面 后面 前面 底面 y z 顶面 左面 后面 右面 前面 底面 y x z

55 平面方程裁剪 平面方程 Ax+By+Cz+D=0 Y L X Z

56 平面方程裁剪 方程判断 将一条直线段的端点坐标代入边界平面方程中 若 AX + BY + CZ + D > 0,则端点位于边界平面外

57 平面方程裁剪 裁剪原则: 两个端点都在某一边界平面外的线段被裁剪掉 两个端点都在所有边界平面内的线段被保留
两个端点不满足上述条件,则计算直线与边界的交点: 由直线方程和平面方程联立得到交点

58 编码裁剪(cohen-sutherland算法)
思想 同二维空间的直线CS裁剪算法 空间划分 编码:六位

59 编码裁剪(cohen-sutherland算法)
六位区域码 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

60 编码裁剪(cohen-sutherland算法)
编码裁剪原则 C1==0 && C2==0  保留 (C1&C2)  0  删除 (C1&C2) == 0  求解直线与边界的交点

61 编码裁剪(cohen-sutherland算法)
小结 本算法与二维算法一样。 优点:简单,易于实现。 缺点:效率

62 参数方程裁剪 直线的两个端点P1(x1, y1, z1), P2(x2, y2, z2) 参数方程 x = x1 + (x2 - x1)u
y = y1 + (y2 - y1)u z = z1 + (z2 - z1)u u[0,1]

63 参数方程裁剪 LB算法的扩展 考虑xwmin, xwmax , ywmin, ywmax , zwmin, zwmax U1, U2求取

64 参数方程裁剪 计算 Pk, Qk, k=1~6 判断 LB算法描述 Pk=0,表示直线平行于窗口某边界
Pk!=0, 用Qk/Pk计算交点所对应的U值

65 参数方程裁剪 计算参数u1和u2 u1=Max{0, Qk/Pk}, 当Pk < 0
u2=Min{1, Qk/Pk}, 当Pk > 0 u1 > u2, 则直线在窗口外 u1 > u2, 否则计算交点坐标,即得到剪裁后的线段的端点


Download ppt "3D Viewing Lectured by Hua Yan."

Similar presentations


Ads by Google