OpenGL具有灰度纹理格式:GL_LUMINANCE。什么相当于Vulkan的内部格式?或者我们如何在vulkan中指定灰度纹理?
答案 0 :(得分:6)
将VK_FORMAT_R8_UNORM
等单通道格式用于8位灰度,VK_FORMAT_R16_SFLOAT
用于半精度浮点灰度,或VK_FORMAT_R32_SFLOAT
用于单精度浮点灰度。
选择一个支持您的需求。
答案 1 :(得分:4)
Ratchet Freak正确回答了这个问题。但是,如果您想知道为什么亮度已经消失,那么Khronos here in EXT_texture_rg的一些基本原理就是为什么Luminance和Luminance-Alpha格式被替换为现代图形中的红色和红绿色格式的API。
历史上,OpenGL ES中使用亮度或亮度-α(L / LA)格式指定了单组分和双组分纹理。随着可编程着色器和渲染到纹理功能的出现,这些传统格式带有一些不再有用的历史文物。
例如,当从这样的纹理采样时,亮度值在颜色分量上复制。可编程着色器不再需要这样做。
还希望能够使用诸如帧缓冲对象(FBO)之类的功能渲染为单组件和双组件格式纹理,但是对L / LA格式的渲染不明确(具体如何映射R / G / B / A值到L / A纹理通道)。