【Scaleform官方文档】sf_4.3_3Di 理论概要

1. 概述

Scaleform 3Di使开发人员可以可以将应用程序UI带到具有新的3DFlash渲染和动画功能的下一个维度。

从Scaleform3.2开始,增加一组ActionScript拓展,提供基本3D功能



2. 与Flash10的相似之处

3Di是使用一组内置到Scaleform中的基本AS2拓展实现的


2.1 局限

1.不执行深度排序(默认绘制顺序仍然通过对顺序进行分层指定)

2.不使用隐面消除(两边都绘制)


2.2实现

3Di使用硬件加速三角形来渲染形状,而Flash10将3D视图渲染成一个位图,然后将包含该位图的矢量矩形用作显示填充

当一个对象同时具有2D和3D属性,优先应用3D属性。



3. 以3D显示Flash

使用Scaleform3.2,有两种不同的方法可用来以3D形式显示Flash内容


3.1 渲染到纹理

第一个选项使用传统方法将Flash渲染成一种纹理,然后将该渲染纹理作为一个地图应用到场景中的一个3D表面上。

“渲染到纹理”(Render to Texture)方法比3Di具有一个明显的优势。由于Flash内容以纹理方式映射到一个3D对象上,因而可以充分利用3D引擎功能。

另一方面,这种方法也存在若干与性能和内容相关的缺点,因为渲染纹理必须附加内存。


3.2 3Di

第二个选项是使用3Di——从ActionScript或Direct Access API(C++)。与使用渲染纹理方法相比,3Di不需要附加内存。其次,单个MovieClip可以有其自己的嵌套式转换——每个都可以唯一地偏移或旋转,因而整个MovieClip看起来不单调。最后,所有输入和交互都是由Scaleform自动处理的。应用程序只是像平常一样把输入事件传递到Scaleform。

局限性:不执行任何深度排序或隐面消除。因此当UI对象在其他对象后面旋转,绘制顺序可能不正确。而且混合UI元素与其他3D游戏无缝混合可能比较棘手。此外许多UI是透明的,并要求特定的绘画混合顺序。

你可能感兴趣的:(Scaleform)