OpenGL和Vulkan的Color Renderable Format

Color Renderable format通常指的是作为GPU输出缓冲区的attachment的资源格式。
OpenGL纹理的Color Renderable是确定的,种类也很少。
Vulkan的Image/Texture资源可以分为两种: Sampleable,Renderable。其中Vulkan的Renderable,比OpenGL的要复杂,种类相对要多很多。
本文介绍两者在使用上的区别。
OpenGL ES 2.0 【OpenGL和Vulkan的Color Renderable Format】OpenGL的Renderable很简单,根据OpenGL ES 2.0的规范,下面这些格式才是Renderable(包括了Color Renderable):
OpenGL和Vulkan的Color Renderable Format
文章图片

Vulkan Vulkan的情形要复杂一些,每个不同用途的Image,支持的格式都是有区别的。
所以Vulkan在处理Image的格式的时候分为两步:

  • 先确定Image的用途
    通过VkFormatFeatureFlagBits来确定Image的不同用途。譬如作为输出的Swap chain Image 通常是VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT 类型。
  • 每种用途的Image有着对应的Image格式
    在https://www.khronos.

    推荐阅读