AGAL 寄存器在 'contain' 3D 向量时如何加减?
How do AGAL registers get added or subtracted when they 'contain' 3D vectors?
我正致力于在我正在开发的 space 游戏中为行星环添加阴影。为此,我需要计算圆柱体(行星的阴影)与平面(环的网格)相交的位置。
我无法看到 'sub' 和 'add' 操作码如何处理寄存器的每个组件而受到阻碍。在本页 http://www.adobe.com/devnet/flashplayer/articles/what-is-agal.html 上有一张图片说明了每个操作码的作用;它将加法和减法(以及其他计算)描述为 'component-wise'。
这是否意味着,如果我添加或减去 3D 矢量,x、y、z(和 w?)分量将相互独立地受到影响?而且,如果是这样,寄存器 'know' 如何在添加或减去 2 个数字时不这样做?我是否需要单独处理 3D 向量的每个组件,或者只使用 'add' 或 'sub' 正确地添加或减去 2 个向量?
Component-wise 意味着每个矢量分量将 added/substracted/etc 彼此分开。例如,将两个向量相加:
(x1, y1, z1, w1) + (x2, y2, z2, w2) = (x1 + x2, y1 + y2, z1 + z2, w1 + w2)
如果您只需要以任意顺序添加一些组件,您可以使用向量调配:
v1.xzy + v2.wwx = (v1.x + v2.w, v1.z + v2.w, v1.y + v2.x)
我正致力于在我正在开发的 space 游戏中为行星环添加阴影。为此,我需要计算圆柱体(行星的阴影)与平面(环的网格)相交的位置。
我无法看到 'sub' 和 'add' 操作码如何处理寄存器的每个组件而受到阻碍。在本页 http://www.adobe.com/devnet/flashplayer/articles/what-is-agal.html 上有一张图片说明了每个操作码的作用;它将加法和减法(以及其他计算)描述为 'component-wise'。
这是否意味着,如果我添加或减去 3D 矢量,x、y、z(和 w?)分量将相互独立地受到影响?而且,如果是这样,寄存器 'know' 如何在添加或减去 2 个数字时不这样做?我是否需要单独处理 3D 向量的每个组件,或者只使用 'add' 或 'sub' 正确地添加或减去 2 个向量?
Component-wise 意味着每个矢量分量将 added/substracted/etc 彼此分开。例如,将两个向量相加:
(x1, y1, z1, w1) + (x2, y2, z2, w2) = (x1 + x2, y1 + y2, z1 + z2, w1 + w2)
如果您只需要以任意顺序添加一些组件,您可以使用向量调配:
v1.xzy + v2.wwx = (v1.x + v2.w, v1.z + v2.w, v1.y + v2.x)