将 Molehill 与 Flash 一起使用我希望创建一个顶点着色器,将一个网格转换为另一个,我已经看到使用 Flare 是可能的,但是我不确定这是否使用 Stage3D,任何人都可以在使用中给我任何指示AGAL 中的着色器关于如何做到这一点。谢谢
问问题
316 次
2 回答
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<=1 作为常数并将其放在 id 0 处,以下代码会将输出位置从起始位置转换(线性插值)到结束位置。
//lerp
"sub vt0 vt2 vt1 \n" +
"mul vt0 vt0 vc0.x \n" +
"add vt0 vt0 va1 \n" +
那么您需要投影 VT0 以获得正确的输出。
于 2012-03-22T23:05:38.163 回答
0
下一版本的像素弯曲器应该支持创建 3d 顶点和片段着色器。预览版应该在这里可用
于 2012-02-05T12:32:06.453 回答