我试图在我的计算着色器中定义这个image2D变量,以便存储一些将来呈现所需的数据:
layout ( binding = 8, rgba32f) writeonly uniform image2D MyTexture ;但是,这似乎无法工作,因为当我编译这个着色器时,它提供了以下错误信息:
Error: image binding must be less than "GL_MAX_IMAGE_UNITS" (8)我已经在以前的代码中定义了8个image2D纹理。我的显卡上似乎没有足够的GL_IMAGE_UNIT插槽(我实际上使用的是核心显卡、英特尔(R) HD 620在我的电脑上)。我该怎么解决这个问题?有没有办法避免使用第8影像单元?或者我不得不搬到另一台电脑去完成我的工作,这将是非常麻烦的:
发布于 2022-06-06 08:27:10
使用一个image2DArray而不是多个image2D。对于一个image2DArray,你需要一个图像单元。image2DArray可以包含相同大小和格式的多层2D图像。因此,您可以减少将多个二维图像捆绑到二维图像数组中所使用的图像单元的数量。
https://stackoverflow.com/questions/72514919
复制相似问题