Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 我已经开始使用Stage3D。这些类中哪些在阶段3d中可用?_Actionscript_Stage3d - Fatal编程技术网

Actionscript 我已经开始使用Stage3D。这些类中哪些在阶段3d中可用?

Actionscript 我已经开始使用Stage3D。这些类中哪些在阶段3d中可用?,actionscript,stage3d,Actionscript,Stage3d,这些类在Stage3D中受支持吗?或者是否存在等价物或类似的类 flash.display.BitmapData; flash.display.GraphicsSolidFill; flash.display.GraphicsStroke; flash.display.GraphicsPath; flash.display.IGraphicsData; flash.display.Shape; flash.filters.BlurFilter; flash.geom.ColorTransform

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

flash.display.BitmapData;
flash.display.GraphicsSolidFill;
flash.display.GraphicsStroke;
flash.display.GraphicsPath;
flash.display.IGraphicsData;
flash.display.Shape;
flash.filters.BlurFilter;
flash.geom.ColorTransform;

Stage3D是一个完全不同的、相当低级的野兽。您列出的这些类都与传统的flashdisplaylist相关,后者是一个CPU驱动的渲染引擎,因此不,它们本身并不存在。但还有比这更重要的事情:

如果您使用的是raw Stage3D API示例,那么感觉非常像OpenGL编程。您正在将顶点缓冲区、索引缓冲区和纹理加载到GPU中,并使用名为AGAL的汇编语言定义顶点和片段着色器程序。所有这些都为您提供了一个跨平台、硬件加速的应用程序,它可能非常快,但与传统的Flash DisplayList有很大不同。可以得到渐变、过滤器和向量形状吗?当然可以,但可能是使用自定义着色器之类的,而不是使用这些类

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

但是,如果您对这种低级3D编程不感兴趣,您可以选择在框架之上构建。有许多Stage3D框架——一些用于创建3D应用程序,另一些用于2D,但使用底层3D加速来提高速度。Adobe有这些框架的列表

例如,是一个Stage3D框架,旨在模拟传统的Flash DisplayList,因此它可以让您接近上面提到的一些类—查看它们的特性并了解详细信息

Flash支持的另一项技术是blitting,它可以动态生成3D加速位图。你可以在位图中绘制任何你喜欢的Flash显示对象,比如形状、渐变、过滤器等等,然后把这些位图推到3D加速框架中。您可以使用此技术单独blit单个对象,或将整个舞台blit为一个全屏纹理。但是,您必须注意将新纹理上传到GPU的频率和数量,因为这会显著影响性能。事实上,GPU编程中一个重要的性能考虑因素是将多个位图批处理到单个纹理中的能力

因此,当考虑从传统的显示列表过渡到阶段3D时,有很多方面需要考虑。希望这有帮助