将超过 4 通道的数据传递给 OpenGL 或 Vulkan

Pass more than 4-channel data to OpenGL or Vulkan

我想将以下值作为纹理传递给片段着色器:

这是很多东西。看起来这需要 OpenGL 中的三种不同纹理。问题:

即使在 Vulkan 中,纹理的通道也不能超过四个。但是,在 OpenGL 和 Vulkan 中,您都可以使用 32 位通道纹理,并使用类似 packUnorm( https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/packUnorm.xhtml ) 的东西。但它只适用于整数纹理,你必须自己执行过滤

另一种方法是使用类似 SSBO 或 TBO 的方法。但是我不明白使用3个纹理是什么问题。