1 二维空间图形坐标变换
初始点坐标为(x0,y0),变换后点坐标为(x1,y1)
(1)平移变换
矩阵表示:T=
(2)旋转变换
逆时针旋转角为正,顺时针为负
矩阵表示:T=
(3)等比变换
矩阵表示:T=
(4)组合变换
前面三个的组合。矩阵T=T1×T2×T3×。。。
2 Transform3D类
通常一个Transform3D类的对象是一种内部表达为4×4的双精度类型的矩阵。一个Transform3D类的对象用来执行平移、旋转、变比例等坐标变换。
3 TransformGroup类
所有表示各种几何变换的Transform3D类的对象必须包含在一个TransformGroup类的对象中,表示对在该TransformGroup类的对象中的三维图形所进行的坐标变换。
如果表示一种几何变换的Transform3D对象没有加入到该TransformGroup类的对象中,则该变换对在该TransformGroup类的对象中的三维图形不起作用。
4 隐藏线、隐藏面消除算法
通常面向视点的所有边都是可见的,被前面的可见面隐藏的所有边都是不可见的,不用将这些边画出来,或者画成虚线,这种消除所有隐藏边的算法叫做隐藏线消除算法。
当给定视点与观察方向后,对视点来讲,并不是所有的面都可见,可见面是由视点与观察方向及面的法向量决定。只需显示可见的面,无须显示隐藏的面,这种算法叫做隐藏面消除算法。
隐藏面的消除与隐藏线消除有时是相互关联的。由隐藏线所围成的面是隐藏面,两个隐藏面所共有的线为隐藏线。
5 Z Buffer隐藏面消除算法
在显示器的像素点阵建立两种缓冲存储单元阵列:Z Buffer 和C Buffer阵列。
简单地说:从视点出发通过每个像素点发出一条射线,Z Buffer阵列存储距离视点最近的多边形与射线交点z坐标,C Buffer阵列存储对应的交点所在面颜色。
6 区域排序消隐算法
在图像空间中,将组成几何体的所有多边形按照z坐标深度值,从小到大排序,用前面可见的多边形切割后面的多边形,将后面的多边形切割为可见与不可见两部分,最后显示所有可见的多边形,这就是最后几何体消隐后的图像。
7 扫描线消隐算法
知道就行,还有个光线跟踪消隐算法
8 最小包围球、最小包围盒
最小包围盒就是用三对分别平行于坐标平面的最小六面体(长方体)包围一个三维几何体。
长方体的体对角线中点为最小包围球球心,对角线长度为直径。
9 同一平面内点与多边形的包含判定
(1)凸多边形的叉积判断法
从给定的一个点向多边形的各个顶点做向量。按顶点顺序逐个计算每相邻两向量之间的叉积。如果所有的叉积符号相同,说明点在多边形内;反之,则在多边形外。
(2)夹角之和检验法
从给定的一个点向多边形的各个顶点做向量。按顶点顺序逐个计算每相邻两向量之间的夹角。如果所有的夹角符号相同,说明点在多边形内;反之,则在多边形外。
(适用于凸多边形和凹多边形)
(3)交点计数检验法
从要判断的点向右做一条射线,求出射线与多边形交点的个数。如果交点的个数是奇数,则点在多边形内;反之,则在多边形外。
10 局部光照明计算模型
在给定光源(包括一个或多个光源)光源的类型、颜色以及几何体表面的各种特性参数后,不考虑场景中其他几何体的影响,通过某种计算算法计算几何体表面上各点的光颜色与强度,将这种算法称为局部光照明计算模型。
局部光照明计算模型只考虑物体表面对直射光、环境光的反射、散射与透射。
11 Gouraud算法
基本思想:(按我自己理解)先算出各多边形的法向量;再根据该向量求出多边形各顶点单位法向量;再根据各顶点单位法向量进行向量合成求出各多边形公共顶点单位法向量;然后应用局部光照明模型求出各顶点的光颜色与光强度值;再通过对各顶点的光颜色与光强度值进行线性插值,求出所有多边形边及其内部各点的光颜色与光强度值。
优点:计算量小
缺点:高光区域有时会出现异常;当对曲面用不同的多边形进行分割时会产生不同的显示效果;Gouraud明暗处理会造成表面上出现过亮或过暗的条纹,称为马赫带(Mach _band)效应。
12 Phong算法
基本思想:(按我自己理解)先算出各多边形的法向量;再根据该向量求出多边形各顶点单位法向量;再根据各顶点单位法向量进行向量合成求出各多边形公共顶点单位法向量;通过对各顶点法向量进行双线性插值,求出多边形内部各点的法向量;再通过局部光照明模型求出内部各点的光颜色与光强度值。
缺点:计算量大;对于某些多边形分隔的曲面,不如Gouraud算法;
优点:显示的更真实;能够产生正确的高光区域;解决了马赫带效应;
13 Whitted整体关照模型
为了增加三维图形显示的真实性,除了考虑各种类型光源对几何体表面的直接照射外,还必须考虑当前场景中来自于其他几何体的漫射光、镜面反射光和透射光对该几何体表面的照射,这样就会产生比较真实的照明效果,如阴影与透明效果等。将这种光照明计算模型称为整体光照明模型。
Whitted光照明模型是一种整体光照明模型,,它能很好地模拟光能在光滑几何体表面之间的镜面反射和通过透明体产生的规则透射。
14 光线追踪算法(Raytracing)
光线跟踪算法是一种在由多光源与多个几何体组成的场景中对几何体进行消隐与整体光强度计算的算法。
光线跟踪算法沿着到达视点的光线的反方向进行跟踪,经过屏幕上每一个像素点,找出所跟踪的光线与几何体的交点,在该交点处分别沿反射方向与折射方向再进行跟踪,找出影响该点光强度的所有光源,通过迭代、累加计算跟踪点的光颜色与光强度。