【发布时间】:2012-12-13 07:10:43
【问题描述】:
我对寄存器有点困惑。
在这篇文章中,http://www.adobe.com/devnet/flashplayer/articles/what-is-agal.html
有两行 AGAL 代码
m44 op, va0, vc0
mov v0, va1
第一行将计算结果放入op寄存器,第二行没有操作 操作寄存器,
那么做第一行是什么意思?
我还找到了一个演示:
//compile vertex shader
var vertexShader:Array =
[
"dp4 op.x, va0, vc0", //4x4 matrix transform from 0 to output clipspace
"dp4 op.y, va0, vc1",
"dp4 op.z, va0, vc2",
"dp4 op.w, va0, vc3",
"mov v0, va1.xyzw" //copy texcoord from 1 to fragment program
];
var vertexAssembler:AGALMiniAssembler = new AGALMiniAssembler();
vertexAssembler.assemble(flash.display3D.Context3DProgramType.VERTEX, vertexShader.join("\n"));
//compile fragment shader
var fragmentShader:Array =
[
"mov ft0, v0\n",
"tex ft1, ft0, fs1 <2d,clamp,linear>\n", //sample texture 1
"mov oc, ft1\n"
];
在vertexShader中,前三行也将reslut放在op中,但第四行也没有使用。
那是什么意思?
谢谢
【问题讨论】:
标签: actionscript-3 flash stage3d agal