V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lzjamao
V2EX  ›  程序员

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

  •  
  •   lzjamao · 2016-10-11 18:10:51 +08:00 · 2170 次点击
    这是一个创建于 2956 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 如果纹理格式为 ETC1,软解过程如何决定选用 RGB16 还是 RGB24 等等
    2. 如果图片存储是低质量的。软解后有可能会变成高质量么
    4 条回复    2016-10-13 10:26:10 +08:00
    enenaaa
        1
    enenaaa  
       2016-10-12 14:02:30 +08:00   ❤️ 1
    1. 看是什么引擎和系统,例如 cocos2d-x ,默认是 rgba8888 , 当然也可以改掉。
    2. 当然不能,这跟解压 jpeg 一个道理,细节损失是补不回来的。
    lzjamao
        2
    lzjamao  
    OP
       2016-10-12 18:51:12 +08:00
    @enenaaa
    感谢您的回复!

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

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

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

    压缩纹理格式资料按名字 baidu 就有,代码资料么, 可以参看一些引擎的代码,如 cocos2d-x
    lzjamao
        4
    lzjamao  
    OP
       2016-10-13 10:26:10 +08:00
    @enenaaa 非常感谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1154 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:53 · PVG 06:53 · LAX 14:53 · JFK 17:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.