我最近一直在构建一个像素着色器,以便在我正在编写的Flash游戏中对玩家角色应用阴影。然而,事实证明,Actionscript 3是......没有优雅地处理这个问题,并且帧速率命中率非常高。
我想做的是用C ++编写一些东西然后可以使用OpenGL缓冲区来存储我想要调整的像素,以硬件加速的方式调整它们,然后将它传递回Flash文件。
有没有办法让AS3将位图数据传递给本地着色器插件.exe,然后接受返回的数据,或者我应该放弃并重写Unity中的整个该死的东西?
如果失败了,有没有办法迫使GPU在AS3中进行数字运算?我知道OpenGL不能和AS3一起使用,但也许不能和DirectDraw一起使用?
我知道这整个企业都是a)荒谬的矫枉过正和b)可能注定失败,但目前所有这一切都阻止我不得不在我的反思性文章中为该项目工作。 (大学课程)
答案 0 :(得分:0)
您无法与任何本地计划互动。从Flash Player 10开始,有一些愚蠢的硬件加速支持,但主要用于视频而不是3D。最好的AS3(Flash Player 10+)可以提供在3D中处理三角形的原生支持(方法drawTriangles())。例如,Flash 3D引擎“Away3D Lite”使用此功能。
答案 1 :(得分:0)