在我的项目中,我们将矩阵的一部分推送到用于骨架动画的常量寄存器,并使用着色器中的矩阵索引访问它们,该着色器也通过常量寄存器传递。
带有glsles的示例着色器:
uniform highp vec4 mPalette[60]; //a part of the matrix for skeleton.
attribute highp vec4 _glesVertex; //the input positions.
attribute vec4 mBlendindices; //the matrix index.
void main ()
{
gl_Position = mPalette[mBlendindices.x];
}
如果我将值“mPalette”指定为使用常量寄存器:vc0 - vc59,则赋值“mBlendindices”以使用常量寄存器:vc60,赋值_glesVertex以使用顶点属性寄存器:va0。
如何将此着色器翻译为AGAL?
答案 0 :(得分:1)
绝对一样。您应该将所有常量和属性传递给着色器(我假设您知道如何在actionscript中传递它)。接下来,在顶点着色器中:
mov op, vc[va.x]