【问题标题】:Greyscale texture format in vulkanvulkan中的灰度纹理格式
【发布时间】:2016-12-31 20:04:56
【问题描述】:

OpenGL 具有灰度纹理格式:GL_LUMINANCE。 Vulkan 中的内部格式是什么?或者我们如何在 vulkan 中指定灰度纹理?

【问题讨论】:

    标签: vulkan


    【解决方案1】:

    采用任何单通道格式,例如 VK_FORMAT_R8_UNORM 用于 8 位灰度,VK_FORMAT_R16_SFLOAT 用于半精度浮点灰度或 VK_FORMAT_R32_SFLOAT 用于单精度浮点灰度。

    选择适合您需要的支持。

    【讨论】:

    • 答案是正确的。 GL_LUMINANCE 除了灰度之外还有更多的含义。访问它时是 r=g=b=a 。虽然它是关于图像视图而不是图像格式。
    【解决方案2】:

    Ratchet Freak 正确回答了这个问题。但是,如果您想知道为什么亮度消失了,Khronos here in EXT_texture_rg 提供了一些理由,说明为什么现代图形 API 中的 Luminance 和 Luminance-Alpha 格式已被取代为 Red 和 Red-Green 格式。

    过去,OpenGL ES 中使用亮度或亮度-alpha (L/LA) 格式指定了单分量和双分量纹理。随着可编程着色器和渲染到纹理功能的出现,这些传统格式带有一些不再有用的历史文物。

    例如,当从此类纹理中采样时,亮度值会在颜色分量之间复制。可编程着色器不再需要这样做。

    还希望能够使用帧缓冲区对象 (FBO) 等功能渲染成单分量和双分量格式的纹理,但未指定渲染成 L/LA 格式(特别是如何映射 R/G /B/A 值到 L/A 纹理通道)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 2021-09-05
      • 2018-05-02
      相关资源
      最近更新 更多