gpt4 book ai didi

opengl - 冻伤 PBR : different compression on separate texture channels of the same texture

转载 作者:行者123 更新时间:2023-12-04 21:35:23 27 4
gpt4 key购买 nike

是否有可能,如果有,如何在 OpenGL4.x 中的不同 channel 上创建和读取具有不同压缩算法的 RGBA 纹理:

没有实际意义的例子A:

  • RG channel 存储以 3Dc 编码的法线贴图
  • channel 存储高度值,让我们说一些编码的镶嵌
  • channel 存储未经压缩的原始 MaterialID

  • 示例 B:
  • RGB 存储用 DXT1 压缩的 Material 参数
  • 不压缩保存 MaterialID

  • 背景:

    Physically Based Rendering PBR (PDF) 的 Frostbite 实现中在第 15 页和第 18 页,作者描述了他们如何将 Material 参数构建到不同的纹理 channel 中。他们还提到他们在 上避免了纹理压缩。部分 channel 不详细说明他们指的是哪些 channel 。

    第 15 页

    All basic attributes (Normal, BaseColor, Smoothness, MetalMask, Reflectance) need to be blendable to support deferred decals. Unblendable attributes, like MaterialId are stored into the alpha channel. We have also avoided compression and encoding mechanisms which could affect blending quality.



    第 18 页

    We chose to avoid compression on few of our attributes and rely on simple, linearly-interpolating alpha blending in this case.

    最佳答案

    没有 OpenGL 或硬件支持在不同 channel 上以不同压缩方式读取纹理。当然,我们可以创建一个 prepass,将这种手工制作的纹理拆分为单独的纹理,然后分别解压缩这些纹理。

    正如 Nicol Bolas 所建议的,Frostbite PBR 实现避免了由于混合而导致的压缩。

    关于opengl - 冻伤 PBR : different compression on separate texture channels of the same texture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39587671/

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