我希望创建一个垂直着色器,让一个网格转换成另一个,我已经看到了使用Flare是可能的,但是我不确定是否使用了Stage3D,有谁可以给我任何关于如何在AGAL中使用着色器的指点。谢谢
发布于 2012-03-23 07:05:38
(也许太晚了)
变形“简单地”是两组位置之间的线性插值。
假设你有一个代表原点的第一个vertexBuffer VA0和一个代表你的目的地的第二个vertexbuffer VA1。您可以将它们存储在临时寄存器中:
"mov vt0 va0 \n" +//temp var, will hold the result
"mov vt1 va0 \n" +//start position
"mov vt2 va1 \n" +//destination然后,您需要一个可以作为常量传递的T值,如下所示:
context.setProgramConstantsFromVector( Context3DProgramType.VERTEX, id, constant );如果您传递类似于
Vector.<Number>([ T, 0,0, 1 ])将0<=T<=1作为常量并将其放在id0处,下面的代码将把输出位置从开始位置转换(线性插值)到结束位置。
//lerp
"sub vt0 vt2 vt1 \n" +
"mul vt0 vt0 vc0.x \n" +
"add vt0 vt0 va1 \n" +然后,您需要投影VT0以获得正确的输出。
发布于 2012-02-05 20:32:06
下一个版本的像素折弯器应该支持创建3d顶点和片段着色器。预览版应该是available here
https://stackoverflow.com/questions/9149178
复制相似问题