0

我正在尝试使用 AGAL 进行着色。我已经设置了一个用着色器程序绘制的全屏四边形,但我遇到了一些无法解释的事情。

我有这些顶点

var vertices:Vector.<Number> = Vector.<Number>([

    - 1, - 1, 0, - 1, - 1, 0,
    + 1, - 1, 0, + 1, - 1, 0,
    - 1, + 1, 0, - 1, + 1, 0,
    + 1, + 1, 0, + 1, + 1, 0

]);

这对程序有效

vertexShaderAssembler.assemble(Context3DProgramType.VERTEX,

    "mov op, va0\n" +
    "mov v0, va1"
);

...

fragmentShaderAssembler.assemble(Context3DProgramType.FRAGMENT,

    "mov oc, v0"
);

然而这并不

vertexShaderAssembler.assemble(Context3DProgramType.VERTEX,

    "mov op, va0\n" +
    "mov v0, va0"
);

...

fragmentShaderAssembler.assemble(Context3DProgramType.FRAGMENT,

    "mov oc, v0"
);

关于为什么我必须通过 va1 传递相同的值以及为什么当顶点只有三个坐标时它不起作用的任何线索?

4

1 回答 1

0

如果您在屏幕上看不到任何结果,则存在验证错误或错误的索引顺序。要检测问题,请在 context3d 对象中将 enableErrorChecking 属性设置为 true。Stage3d 将开始抛出验证错误。有关 Stage3D 的任何其他问题,您可以在 Facebook 上加入我们的 Stage3D 小组并更快地获得答案。

于 2015-06-10T06:05:31.560 回答