首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DXT压缩产生的文件大小与原始PNG相同

DXT压缩产生的文件大小与原始PNG相同
EN

Stack Overflow用户
提问于 2012-10-12 22:01:42
回答 2查看 2.6K关注 0票数 2

我正在尝试将我的纹理转换/压缩为DDS格式,并从原始PNG中进行DXT压缩。我使用的是Mac,所以我使用的是Graphic Converter (虽然我也尝试过其他工具)。但是,无论使用哪个DXT级别I (DXT1-5),文件大小都大致保持原始PNG的大小。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-18 23:12:00

PNG是一种无损压缩格式,基于带有一些特殊过滤器的zlib。它将保证复制与原始图像完全相同的图像。

因此,PNG压缩比是可变的。在复杂的图像上,压缩效果会很差。在全黑图像上,压缩效果会非常好。

这个比率对于DXT1是8:1,对于DXT5是4:1 (假设32位RGBA输入)。如果你不需要它,就不要使用它,这只是在浪费带宽。

正如您可以猜到的那样,折衷是DXT质量将是可变的。DXT的质量仅仅被认为是“足够好”,但它远不是完美的。在图像的复杂部分,会有一些可见的伪影/失真。在简单的部分,复制将几乎与原始完全相同。

DXT压缩的工作方式是将图像切割成4x4像素的小块,并将它们独立压缩到固定的压缩比。

这就产生了根本不同的属性: DXT纹理应该由GPU硬件直接解码。这非常快,几乎是免费的。这得益于纹理被切割成小块的事实:没有必要解码整个纹理来推送单个像素=>,只需解码适当的4x4块即可。此属性是解码过程的关键。

相比之下,PNG解码整个图像,因此有更多的空间来通过查找直接4x4邻域之外的相关性来改进压缩。但权衡的是,不可能只检索一小块像素:这是整个图像或什么都没有。

正如您所看到的,选择一种或另一种压缩方法与压缩比无关。对于实时快速显示大量纹理( 3D游戏的典型场景),DXT是唯一的选择。

票数 7
EN

Stack Overflow用户

发布于 2012-10-13 08:41:57

DDS/DXT纹理不能保证小于PNG。它取决于纹理的内容及其大小。纯色PNG或大多数纯色,如卡通的png,将压缩得非常小,而照片通常不会很好地压缩。其中,as DXT是4比1或6比1压缩周期,具体取决于它是DXT1、DXT3还是DXT5

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

https://stackoverflow.com/questions/12860747

复制
相关文章

相似问题

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