使用Molehill with Flash我希望创建一个vertiex着色器,让一个网格转换成另一个网格,我已经看到它可以使用Flare,但是我不确定是否使用了Stage3D, 任何人都可以在AGAL中使用着色器给我任何关于如何做到这一点的指示。 感谢
答案 0 :(得分:2)
(也许为时已晚)
变形是“简单地”两组位置之间的线性插值。
假设您有第一个表示原点的顶点缓冲区VA0和表示目标的第二个顶点缓冲区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&lt; = 1作为常量并将其置于id 0,以下代码将从起始位置到结束位置变换(线性地插入)输出位置。
//lerp
"sub vt0 vt2 vt1 \n" +
"mul vt0 vt0 vc0.x \n" +
"add vt0 vt0 va1 \n" +
然后您需要投影VT0以获得正确的输出。
答案 1 :(得分:0)
下一版像素弯曲器应该支持创建三维顶点和片段着色器。预览版本应为available here