Vulkan中的灰度纹理格式

3

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

2个回答

8

选取适合需求的受支持的单通道格式,例如VK_FORMAT_R8_UNORM表示8位灰度、VK_FORMAT_R16_SFLOAT表示半精度浮点灰度或VK_FORMAT_R32_SFLOAT表示单精度浮点灰度。


答案是正确的。GL_LUMINANCE除了灰度之外还有更多的含义,当访问它时,r=g=b=a。尽管它与图像格式无关,但它与ImageView有关。 - Tim Hsu

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

从历史上看,OpenGL ES中指定一组和两组分量的纹理使用亮度或亮度-Alpha(L/LA)格式。随着可编程着色器和渲染到纹理的能力的出现,这些遗留格式带有一些不再有用的历史瑕疵。

例如,在从这些纹理中取样时,亮度值会在颜色分量之间复制。这在使用可编程着色器时不再必要。

还希望能够使用诸如帧缓冲对象(FBO)之类的功能将图像渲染到一组和两组分量格式的纹理中,但是渲染到L/LA格式是未指定的(具体来说是如何将R/G/B/A值映射到L/A纹理通道中)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接