1、概念
数据是计算机图形学研究的基础,常用的数据工具主要包括向量、矩阵及四元数等,这些数据适用于不同的情况,各有优缺点。因此,有必要学习这些常用的数据工具,在合适的地方用合适的数据工具会方便程序开发并提高运算速度和效率,可以达到优化程序的目的。
下面将分别介绍这些常用的数据工具,包括其数学定义和几何定义等。对于这些数据工具的常用运算可参见相关的线性代数书籍,本书不再详细介绍。介绍这些数据工具的目的是方便后面各种数据工具之间的转换,这些数据工具是研究开发的基础,读者一定要理解得非常深刻。
1.1 向量
向量作为 2D、3D 数学研究的标准工具,是一种很常用的数据工具,大部分的 3D 图形引擎都把向量作为基本的数据工具,可见向量在表达基本数据时有明显的优势。
向量存在两种不同但意义相关的定义,即数学定义和几何定义。从数学意义上来讲,向量是一个数据的集合,可以理解为程序开发中的数组。从几何意义上来讲,向量表示有大小和方向的有向线段。虽然两种定义有明显区别,但在数据表达方面存在共同的优点,可以很方便、简单地表示基本数据。
OSG 定义了大量的类,用于保存向量数据,如顶点、法线、颜色和纹理坐标等。osg::Vec3 是一个三维浮点数组,可以用来保存顶点和法线数据;osg::Vec4 用于保存颜色数据;而 osg::Vec2 可用于保存 2D 纹理坐标。基本的向量类如下:
//二维向量
osg::