1. 几何的描述
几何主要可以分为两类,一种是隐式几何(Implicit Geometry),一种是显式几何(Explicit Geometry)。
2.描述几何的方式
2.1 隐式几何
隐式几何是对点几何进行的描述,并不直接给出点的位置。例如,对于一个单位球面,我们可以使用公x 2+ 2 + 2 = 1 进行表示。我们可以通过函数 (, , ) = 0 隐式地定义一个集合。几何的隐式表示很难看出来所对应的图形,但是可以非常轻松的判断一个点是不是在这个图形面上。隐式几何有以下几种表示方式:
- 使用数学函数表示,是一种不直观的表示方法;
- CSG(Constructive Solid Geometry)表示,使用一系列基本几何体通过交、并、差等布尔运算得到最终的结果;
- 距离函数(Distance Function)表示,距离函数表现了空间内任意一点到物体的最短距离。两个距离函数的加和可以得到两个物体融合的中间态。非常适合在模拟水滴融合中使用。距离函数中距离为 0的平面就是物体平面。距离函数还可以使用水平集(Level Set Method)来离散的表示;
- 分型(Fractals)表示,指的是一个图形的一部分和自己整体相比高度相似,可以理解为一种递归的形式。
2.2 显示几何
显式几何通过直接定义几何上的点或者通过把点进行参数映射的方式定义到新的空间(例如我们可以把 − 平面上的点映射到三维空间中)。显式几何可以轻松的找到所有的点,但是不好判断空间中任何一个点是否在图形面上。显式几何常见的表示方式有以下几种:
- 点云(Point Cloud)表示,使用一系列空间中三维的坐标来表示物体。点越密集,所形成的模型效果越好。一般会使用点云生成三角形面。
- 多面形面(Polygon Mesh)表示,一般使用三角形或者四边形来表示。描述更加复杂但也是最为常用的方式。使用 Wavefront Object File(.obj)格式的文件来存储。在 obj 文件中定义了顶点坐标,法线方向以及纹理坐标还有它们之间的关系。