首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我已经开始使用Stage3D了。这些类中的哪些在Stage3D中是可用的?

问我已经开始使用Stage3D了。这些类中的哪些在Stage3D中是可用的?
EN

Stack Overflow用户
提问于 2012-04-27 23:58:42
回答 1查看 590关注 0票数 0

这些类在Stage3D中受支持吗?或者是否存在等价物或类似的类?

代码语言:javascript
复制
flash.display.BitmapData;
flash.display.GraphicsSolidFill;
flash.display.GraphicsStroke;
flash.display.GraphicsPath;
flash.display.IGraphicsData;
flash.display.Shape;
flash.filters.BlurFilter;
flash.geom.ColorTransform;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-28 03:08:30

Stage3D是一个完全不同的、相当低级的野兽。你列出的那些类都与传统的Flash相关,这是一个DisplayList驱动的渲染引擎,所以它们本身并不存在。但远不止于此:

如果您使用的是原始的Stage3D API(例如tutorial here),那么它感觉非常像OpenGL编程。您正在将顶点缓冲区、索引缓冲区和纹理加载到GPU中,并使用称为AGAL的汇编语言定义顶点和片段着色器程序。所有这些都让你得到了一个跨平台的,硬件加速的应用程序,它可能非常快,但它与传统的闪存DisplayList非常不同。你可以得到渐变,滤镜和矢量形状-当然,但可能是使用自定义着色器等,而不是使用这些类。

在某些应用程序中,在Stage3D硬件加速的背景上使用传统的DisplayList进行交互式UI控制是有意义的。DisplayList位于Stage3D平面的顶部,因此这是完全可能的。

但是,如果这种低级3D编程不是您感兴趣的,您可以选择在框架之上进行构建。有很多Stage3D框架--一些是用来创建3D应用程序的,另一些是用来创建2D的(但是为了速度,使用了底层的3D加速)。Adobe有一个这些框架的列表here。

例如,Starling是一个Stage3D框架,旨在模仿传统的闪存DisplayList,所以它会让你更接近你上面提到的一些类-查看他们的demo和API docs了解细节。

Flash支持的另一种技术是blitting,它可以动态生成用于3D加速的位图。您可以绘制到位图(也称为blit)任何闪光DisplayObjects你喜欢(形状,绘制的渐变,与过滤器,任何东西),然后推动这些位图到3D加速框架。您可以单独对单个对象进行blit,也可以使用此技术将整个舞台blit为一个全屏纹理。但您必须小心上传新纹理到GPU的频率和数量,因为这可能会显著影响性能。事实上,GPU编程中一个重要的性能考虑因素是将多个位图批处理到单个纹理中的能力。

因此,在考虑从传统的DisplayList过渡到Stage3D时,有许多方面需要考虑。希望这能有所帮助。:)

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10353951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档