你说你的家,在地图上看不到的地方;
我却愿陪你,去寻找故乡的月亮。
你说你的梦,或许只能够随便想一想;
我却要和你一起,把彩虹挂在梦上。
我希望,每一颗心灵的窗外,都有溪流在歌唱;
我希望,每一双眼睛的景象,都有鲜花的芳香;
我希望,每一秒走过的时光,都有幸福在流淌;
我希望,每一次我们的牵手,都穿着春天衣裳。
摘要: 三角网格是顶点和三角形的列表。三角网格的一系列基本操作都是逐点和逐三角形应用基本操作的结果。最明显的,渲染和转换都属于这种操作。为渲染三角网格,我们逐个三角形渲染,如要向三角网格应用转换,如旋转和缩放等,应逐顶点进行。
当两个或更多顶点(也许有误差)时,将它们焊接在一起是有益处的。更加准确地说,删除其余的,只剩一个。例如,我们要焊接图14.9中的A和B,有两个步骤:
(1)步骤1,扫描三角形列表,将对B的引用全部替换成对A的引用。
(2)步骤2,现在B是孤立点,将它从顶点列表中删除。
阅读全文
摘要: 三角网可在三角形或顶点级保存额外信息。
纹理映射是将位图(称作"纹理图"或简称"纹理")贴到多边形表面的过程。这里只给出一个高度简化的解释:我们希望将2D纹理贴到多边形表面上,同时考虑多边形在摄像机空间的方向。对多边形中每个需要渲染的像素都要计算2D纹理映射坐标,这些坐标用以索引纹理图,从而为相应像素着色。
通常,在顶点保存纹理映射坐标,三角形面中其余各点的坐标通过插值进行计算。
阅读全文
摘要: 三角带是一个三角形列表,其中每个三角形都与前一个三角形共享一边,图14.2显示了一个三角带的例子。
注意顶点列出的顺序使得每三个连续的点都能构成一个三角形。例如:
(1)顶点1、2、3构成第一个三角形。
(2)顶点2、3、4构成第二个三角形。
(3)顶点3、4、5构成第三个三角形。
阅读全文
摘要: 最简单的情形,多边形网格不过是一个多边形列表;三角网格就是全部由三角形组成的多边形网格。多边形和三角网格在图形学和建模中广泛使用,用来模拟复杂物体的表面,如建筑、车辆、人体,当然还有茶壶等。
当然,任意多边形网格都能转换成三角网格,三角网格以其简单性而吸引人,相对于一般多边形网格,许多操作对三角网格更容易。
阅读全文
摘要: 考虑2D中的直线L,L由所有满足p . n = d的点p组成。
其中n是单位向量,我们的目标是对任意点q,找出直线L上距q距离最短的点q',它是q投影到L上的结果。让我们画一条经过q平行于L的辅助线 M,如图13.1所示。设nM和dM分别为直线方程的法向量和d值。因为L和M平行,所以它们的法向量相等:nM=n。又因为q在M上,所以dM为 q.n。
阅读全文
摘要: 前面都提到了cAABB3类,它代表的是3D中的轴对齐矩形边界框(AABB),这里给出类的完整定义和实现。
阅读全文
摘要: 检测两个静止AABB的相交性是很简单的,只需要在每一维上单独检查它们的重合程度即可。如果在所有维上都没有重合,那么这两个AABB就不会相交。intersectAABBs()就是用这项技术来实现的。
AABB间的动态测试稍微复杂一些。考虑一个由极值点smin和smax定义的静止AABB和一个由mmin和mmax定义的运动AABB。运动AABB的运动由向量d给出,t从0变换到1。
阅读全文
摘要: 球和平面的静态检测相对容易一些,可以用公式12.14来计算球心到平面的距离。如果距离小于球半径,那么它们相交。实际上还能作一种更灵活的检测,这种检测把相交分为球完全在平面正面,完全在背面,跨平面等三种情况。仔细分析程序清单13.2:
阅读全文
摘要: 考虑3D中由极值点pmin和pmax定义的AABB和以标准方式定义的平面:p . n = d,其中n为单位向量,平面与AABB必须处于相同的坐标系中。
一种简单的静态测试方法是,计算矩形边界框顶点和n的点积,通过比较点积和d,来检测边界框的顶点是否完全在平面的一边,或是在另外一边。如果所有点积都大于d,那么整个边界框就在平面的正面所指的一侧;如果所有的点积都小于d,那么整个边界框就在平面的反面所指的一侧。
阅读全文