引言
三维计算机图形学的主要目的就是从物体的描述或模型产生物体或者场景的二维图像。物体可以是一个实际的物体也可以只是计算机上的一种计算机描述,
按照使用频率的大概顺序列出计算机图形学中使用的主流模型
- 多边形
物体使用多边形小平面组成的网或者网格来近似表示,用这种形式我们可以按照所选的精确度来表示任何形状的物体,然而,在这里精确度却有些随意,
双三次参数曲面片
这些曲面片是“弯曲的四面体”,一把来讲,可以说这种表示方法和多边形网格类似,只是这是各个多边形的表面变成了弯曲的,每一个曲面片都用一个数学公式来定义,该公式给出曲面片在三维空间中的位置以及形状,这个公式是我们能够产生改曲面片表面上的每一个点,我们可以通过改变数学定义来改变曲面片的形状曲率。这导致了很强的交互能力,然而问题也是明显的,要绘制或可视化曲面片是非常昂贵的,当改变曲面片网中的一个曲面片的形状时,出现了如何保持曲面片之间的光滑性的问题,双三次参数曲面片可以是精确的表示也可以是近似的表示,他们只能是其自身的精确表示,这个令人烦恼的说明是必要的,因为当将表示用于真实的或现存的物体时,模拟出的形状不必与物体的表面相对应。构造几何实体(CSG)
在一定的刚性形状限制的范围内这是一种精确的表示,通过将基元形状与几何基元结合,可以表示很多构造出来的物体,例如,一块带有孔的金属可以定义为一个矩形实体和一个圆柱体之间的相减而产生的结果。空间细分技术
这种技术只是意味着吧物体空间细分为基本的立方体,称为体素。在吧每一个体素标记为空或者含有物体的某部分,吧二维物体表示为一些像素的集合,这些像素是物体的投影点,三维表示与之类似,用这种方式标记所有的三维物体空间肯定是昂贵的,但是这种方式确实在计算机中得到了应用,特别是光线跟踪中,如果物体被以这种方式表示,则会产生高效的算法。隐式表示
一种表示物体的隐函数,例如一个隐函数为
x2+y2+z2=r2
这是一个球的定义,就自身而言,这种隐函数在计算机图形学中的用途有限,因为只有有限数量的物体可以使用这种方式来定义,而且从绘制的角度考虑这是一种不方便的表示方法。然后我们必须注意到。,这种表示方法确实在三维计算机图形学中出现,尤其是在光线跟踪中,光线跟踪方法中经常用到球,它或者是作为物体本身出现,或者是用于其他多边形网格表示的限定物体
三维物体的多边形表示
这是一种三维计算图形学中经典的表示形式,这这种表示法中。物体用多边形小平面组成的网格来表示,在一般情况下,物体具有曲面,而这些小平面是对这样的平面的近似。多边形可以包含一个顶点计数,该计数来自创建模型所采用的技术,或许我们可以将所有多的多边形都限制为三角形,
多边形的属性
- 是不是三角形
- 面积
- 包含多边形平面的法向
- 包含多边形的平面的系数(A,B,C,D)其中Ax + By + Cz = D
- 是否为凸多边形
- 平面是否有洞
边属性
- 长度
- 边是位于2个多边形之间还是位于2个平面之间
- 该边的每一侧的多边形
顶点属性
- 包含该顶点的多边形
- 明暗处理或者顶点法向 包含该顶点的多边形法矢量的平均值
- 指定映射到二维纹理图像的纹理坐标
创建多边形物体
四个常用的多边形建模方法
- 使用三维数字化仪或者采用等价的手工策略
- 使用像激光测距仪这样的自动化设备
- 是数学描述产生一个物体
- 通过扫描产生一个物体
物体的构造实体几何表示
我们把前面论述的方法(多边形网格法)归类为机器表示法,它也经常被用作为用户表示法,CSG方法在很大程度也是一种用户表示法,它需要特殊的绘制技术,或者需要在表示之前转换为多边形网格模型,这是一种高层次的表示方法,它既可以作为一种形状表示,也可以作为物体如何构造的一种记录,在这种表示中,形状的逻辑是最终的形状如何以基元形状的某种结合来表示。
物体表示得空间细分技术
八叉树和多边形
在计算机图形学中八叉树的最广发用途是将一个含有很多物体(其中每一个物体都是由很多多边形组成的)的场景组成的一种空间占用结构,
场景分解八叉树控制因素
- 每个结点的候选多边形的最小数目
- 八叉树的最大深度 深度越深,分解越多,叶结点上的候选多边形越少
BSP树【二叉空间分割树】
它是为了特定的目的进行空间分解的一种方法,最常用的情况是隐藏面的消除。
创建体素实体
用隐函数表示物体
用隐含方法所建立的表示是通过隐含地吧物体定义部件的思想来表示物体的
场景管理和物体表示
多边形网格优化
网格简化 将多边形减少到满足所要求的质量的适当水平
细节近似水平 适合于观察距离所用的水平,
渐进式的变换
网格压缩
选择性改进