1.4.2 、矢量

矢量是图形编程中频繁使用的另-个数学概念。从某种意义上讲,矢量是另-种诠释顶点数据的方式。矢量是既有方向又有距离的一个量。距离也叫大小。所有的顶点都可以用它相对于OpenGL ES坐标系原点({0, 0, 0})的距离和方向来定义。图1-9使用一个从原点到顶点{1.5, 3.0, -2.0}的实心箭头来描述矢量。虚线显示了顶点是如何与坐标轴对齐的。

图 1-9

可以使用每个顶点的坐标之间的差异来计算任意两个顶点之间的矢量。介于顶点{1.5, 3.0, - 2.0}与原点之间的矢量是{1.5- -0.0, 3.0 -0.0, -2.0- -0.0}。 图1-10中的顶点V1与顶点V2之间的矢量等于{V2.x-V1.x, V2.y- V1.y, V2.z- V1.z}。

矢量可以加在一起进而产生一个新矢量。介于原点与任意顶点之间的矢量是3个轴对齐矢量的和,参见图1-11。矢量A+B+C等于矢量D (如下式所示),同时确定了在{1.5,3.0,- 2.0}位置的顶点。

D.x = A.x+B.x+C.x = 1.5+ 0.0 + 0.0 = 1.5
D.y = A.y+B.y+C.y = 0.0 + 3.0 + 0.0 = 3.0
D.z = A.z + B.z +C.z = 0.0 + 0.0 + -2.0 = -2.0
图 1-10
图 1-11

矢量是理解现代GPU的关键,因为图形处理器就是大规模并行矢量处理器。GPU能够同时控制多个矢量,并执行用于定义渲染结果的矢量运算。在后面的章节会根据需要适时地解释多个关键的除了加法和减法之外的矢量运算。OpenGLES的默认坐标系、顶点和矢量为要渲染的几何数据的定义提供了足够的数学元素。


注意

线性代数的整个领域是处理矢量数学运算。线性代数是关于三角学的,但是它主要使用简单的运算,如加法和乘法来建立和操作复杂的几何图形。计算机图形依赖于线性代数,因为计算机尤其是GPU擅长简单的数学运算。本书会根据需要逐渐对线性代数的概念进行讲解。


results matching ""

    No results matching ""