【问题标题】:Texture compression from 4096 to 512 without losing quality纹理压缩从 4096 到 512 不损失质量
【发布时间】:2019-04-17 07:02:14
【问题描述】:

我在 4k 图像上烘焙纹理并使用 Gimp 将其缩小到 512,但 Unity 3D 中的质量很差。图片格式为png。 在 4k 图像上烘焙纹理并将手机游戏缩小到 512 是否是个好主意? 对于手机游戏开发,我该怎么做才能在小尺寸(512 或以下)的烘焙纹理上保持良好的质量?

【问题讨论】:

    标签: compression png textures game-engine


    【解决方案1】:

    一般来说,如果您使用较小的纹理,您可能会牺牲一些纹理质量。这是有道理的:使用较少的数据,一定会丢失某些东西,这通常是精细的细节和锐利的边缘。不过,有一些策略可以充分利用纹理数据:

    • 确保尽可能高效地布置模型的 UV。细节很重要的部分——比如面部——应该比细节不重要的部分——比如低频服装或模特的下侧——给予更多的紫外线空间。尽量减少未使用的纹理空间。

    • 在可行的情况下,您可以使用重叠 UV 来重复使用 UV 空间的相似部分。如果您的模型完全对称,您可以将两半映射到同一空间。或者,如果您的模型是具有相同边的板条箱,您可以将每一边映射到同一个 UV 方块。

    • 查看是否可以将纹理分解为对缩小尺寸不太敏感的多个纹理,然后将它们分层。例如,景观纹理可以分解为低频颜色纹理和高频噪声纹理。在这种情况下,低频纹理可以在不损失质量的情况下缩放得更小,而高频纹理可以用裁剪的平铺纹理替换,或者在着色器中按程序生成。

    • 尝试不同的大小调整算法。大多数图像编辑器都可以选择使用双三次或双线性方法调整大小。双三次在保留边缘方面做得更好,而双线性有时可以更好地匹配某些内容/着色器。您还可以通过仔细使用模糊或锐化滤镜来改进调整大小的纹理。

    • 如果您的游戏所针对的硬件支持它,您应该使用硬件压缩格式(如 ETC2 或 ASTC)进行评估。例如,ETC2 格式可以将 24 位 RGB 纹理数据压缩到小六倍,同时仍然具有相同的图像尺寸。压缩是有损的,因此会丢失一些图像信息并且存在一些伪像,但对于某些内容,它看起来比重新缩放到类似数据大小的原始纹理更好。根据内容,调整大小和硬件纹理压缩的某种组合可能会让您最接近所需的质量/大小权衡。 Unity 手册声称它在导出时会自动选择一个好的默认纹理格式,但您可以尝试其他的 in the export options

    • 通常,使用较小纹理的动机是消耗更少的视频内存并提高性能。但是,如果动机只是为了减少游戏的下载大小,您可以尝试其他图像格式。例如,JPG 允许您选择图像质量值以获得更小的文件大小。不过,它很少用于游戏,因为它占用的视频内存与类似大小的 PNG 一样多,可能有伪像,并且不支持 alpha。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 2019-10-06
      • 2019-12-23
      • 2019-02-14
      • 1970-01-01
      • 2015-09-02
      相关资源
      最近更新 更多