0

我最近一直在构建一个像素着色器,以将着色应用于我目前正在编写的 Flash 游戏中的玩家角色。然而,事实证明,Actionscript 3 是……没有优雅地处理这个问题,而且帧率命中非常大。

我想做的是用 C++ 编写一些东西,然后可以使用 OpenGL 缓冲区来存储我想要调整的像素,以硬件加速的方式调整它们,然后将其传递回 Flash 文件。

有没有办法让 AS3 将位图数据传递给本地着色器插件 .exe,然后接受返回的数据,或者我应该放弃并用 Unity 重写整个该死的东西吗?

如果做不到这一点,是否有任何方法可以强制 GPU 在 AS3 中进行数字运算?我知道 OpenGL 不能与 AS3 一起使用,但 DirectDraw 可能吗?

我知道这整个企业a)荒谬的矫枉过正,b)可能注定要失败,但目前这一切都阻止了我为该项目撰写反思性文章。(大学课程)

4

2 回答 2

0

您不能与任何本地程序进行交互。从 Flash Player 10 开始,有一些愚蠢的硬件加速支持,但主要用于视频而不是 3D。最好的 AS3 (Flash Player 10+) 可以提供在 3D 中处理三角形的本机支持(方法 drawTriangles())。例如,Flash 3D 引擎“Away3D Lite”使用此功能。

于 2011-03-30T16:47:01.383 回答
0

你试过看炼金术吗?

http://labs.adobe.com/technologies/alchemy/

这是一种将 C++ 代码编译成 swf 字节码的方法。

于 2011-04-01T15:36:07.120 回答