0

将 Molehill 与 Flash 一起使用我希望创建一个顶点着色器,将一个网格转换为另一个,我已经看到使用 Flare 是可能的,但是我不确定这是否使用 Stage3D,任何人都可以在使用中给我任何指示AGAL 中的着色器关于如何做到这一点。谢谢

4

2 回答 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 回答