最近了解到,如果纹理格式不被硬件支持的话,纹理会被软解。我有 2 个疑问。

2016-10-11 18:10:51 +08:00
 lzjamao
1. 如果纹理格式为 ETC1,软解过程如何决定选用 RGB16 还是 RGB24 等等
2. 如果图片存储是低质量的。软解后有可能会变成高质量么
2052 次点击
所在节点    程序员
4 条回复
enenaaa
2016-10-12 14:02:30 +08:00
1. 看是什么引擎和系统,例如 cocos2d-x ,默认是 rgba8888 , 当然也可以改掉。
2. 当然不能,这跟解压 jpeg 一个道理,细节损失是补不回来的。
lzjamao
2016-10-12 18:51:12 +08:00
@enenaaa
感谢您的回复!

对于第 1 个问题,我知道软解过程,跟 GPU 硬件无关? 只是引擎读出硬件信息后,判断不支持硬件加速格式,引擎帮使用都自定义一个图片处理方案?
对于第 2 个问题。网上我有人说某些纹理压缩时,会携带原始图片数据。所以可能将失真的补回来。不知道是不是真的?

另外, 我关于软解的资料可以提供么?谢谢你的回复!
enenaaa
2016-10-12 23:22:05 +08:00
软解跟一般代码一样在 cpu 执行, 是跟 gpu 无关。对于硬件不支持的压缩纹理,有些引擎可能会直接返回失败, 有些会像对待 png , jpg 格式那样选择软解,看具体情况。

常见的压缩纹理格式, etc1 , pvr, dxt 等都是有损压缩, 当然是不可能补回细节的。保留全部细节的是无损压缩,例如 png 图片。 无损压缩的压缩纹理格式,这个。。。貌似没怎么看到。

压缩纹理格式资料按名字 baidu 就有,代码资料么, 可以参看一些引擎的代码,如 cocos2d-x
lzjamao
2016-10-13 10:26:10 +08:00
@enenaaa 非常感谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/311988

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX