将 RGBA32F 纹理作为 R32F 传递到着色器以进行 imageAtomic 操作和访问组件

rag*_*nar 3 opengl glsl opengl-4

是否可以将 3D RGBA32F 纹理作为与 imageAtomic 操作(即 R32F)兼容的类型传递给着色器,然后以某种方式修改 ivec3 索引,以便确定性地访问 RGBA32F 纹理的适当组件?

我知道这对于索引更直接的缓冲区是可能的,但 ivec3 似乎会阻止巧妙的索引操作。

Nic*_*las 5

首先,R32F兼容原子图像操作。只有整数格式是。除非您使用NVIDIA 扩展

其次,图像格式兼容性规则不允许您假装 RGBA32F 纹理是 R32UI 纹理。它们基于兼容的纹素大小工作,RGBA32F 的大小为 128 位,而 R32UI 的大小为 32 位。