gpt4 book ai didi

actionscript-3 - 在 Flash 11.3 中加载 ATF 纹理有效,但内存使用率较高

转载 作者:行者123 更新时间:2023-12-04 06:53:01 24 4
gpt4 key购买 nike

我知道目前这还没有完全得到官方支持,但我正在尝试使用开源项目生成 ATF 纹理 ATF-Encoder .然后我尝试使用 uploadCompressedTextureFromByteArray 将其上传到 Stage3D 纹理,它本身自 FP11 以来就受支持。

这在正确上传和显示纹理的意义上起作用。我还可以验证生成的纹理上是否存在压缩伪影,特别是如果我在编码期间增加量化因子,并且生成的 ByteArray 比“原始”纹理小得多(大约小 20 倍)。

但是,使用 Process Explorer 测量 GPU 使用情况时,我仍然为每个纹理消耗完全相同数量的 VRAM(即每个像素 5.333 字节),而不是预期的小得多的值。

纹理是使用 BGRA 模式创建的,而不是压缩模式 - 如果我尝试压缩,在尝试上传时它会给我“不兼容的格式”。据我所知,ATF 格式支持“压缩模式”纹理,但 ATF 编码器不输出带有该标志集的纹理? (我试过在压缩完成后强制打开标志,不出所料,这只会让 Flash 崩溃)

有人有关于这个问题的更多信息吗?编码正确的 ATF 并使用压缩标志上传是否可以解决问题?或者这是一个实现错误,它接受压缩的有效负载,但在上传时解压缩?这里的任何信息都很有值(value),真的。

这是在硬件模式下,在 AMD Radeon 6450、Windows 7 64 位、Flash Player 11.3 上(同样的事情发生在 11.4 beta 中)。

最佳答案

为了澄清 renaun 所说的,ATF 中有多种压缩类型:

block 压缩(PVRTC、DXT5 和 ETC1)是反射(reflect) GPU 内存节省的压缩类型。如果您不使用 block 压缩,您的纹理将作为 RGBA 上传,并使用与 PNG 一样多的 GPU 内存。

除此之外,无论您是否使用 block 压缩,JPEG XR 也可以应用于 ATF 文件。这将减少 ATF 的文件大小,但不会减少所需的 GPU 内存量。请注意,量化级别 0 是无损的,因此它不会引入更多的伪像,但使用 Adob​​e 的 png2atf 实用程序,您可以设置量化因子(压缩级别)。

底线:由于您引用的开源 ATF-Encoder 不支持 block 级压缩(引用缺乏开源压缩代码),因此它无法创建纹理减少 GPU 内存使用量。

此外,ATF 是一种容器格式。这意味着它可以保存图像的一种或多种编码( block 压缩类型)。您可以创建包含 PVRTC、ETC1 和/或 DXT5 的任意组合的 ATF 文件,具体取决于您希望 ATF 在哪些平台上运行。例如,您可以仅在打包 .ipa 文件时为 iOS 构建过程打包 .atf 文件,而在打包 .apk 文件时仅为 Android 打包。

IMO,最佳点是 block 压缩 + 无损 JPEG XR 压缩。这代表 GPU 内存节省 + 小文件大小。此命令(再次使用 Adob​​e 的 png2atf)是:

PVRTC(iOS):

png2atf -c p -r -i image.png -o image.atf
ETC1(安卓):
png2atf -c e -r -i image.png -o image.atf
DXT5(桌面):
png2atf -c d -r -i image.png -o image.atf
一个 .atf 文件中的所有 3 种格式:
png2atf -c -r -i image.png -o image.atf

另请注意, block 压缩会导致一些非常丑陋的伪像。我只会在您需要节省 GPU 内存时使用它。

更新 - 关于 Dave Walker 的评论 - 是的,PVRTexTool在创造高质量结果方面做得更好。它有一个 GUI 和一个命令行,您可以使用 GUI 自行探索所有选项,但我最喜欢的命令行选项(用于具有卡通 Sprite 的半透明 PNG 的顶级质量)是:

PVRTexToolCL -i image.png -o image.pvr -m -l -f PVRTC1_4 -q pvrtcbest -mfilter cubic

关于actionscript-3 - 在 Flash 11.3 中加载 ATF 纹理有效,但内存使用率较高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11652507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com