opengl - SSBO 和图像加载/存储之间的区别

标签 opengl opengl-4

“着色器存储缓冲区对象”(SSBO)和图像加载存储操作之间有什么区别

什么时候应该使用一个而不是另一个?

它们都可以进行原子操作,我假设它们存储在相同类型的内存中。而且无论它们是否存储在相同类型的内存中,它们是否具有相同的性能特征?

编辑:最初的问题是在 SSBO 和统一缓冲区对象之间询问,它是在 SSBO 和图像加载存储之间。

最佳答案

着色器存储缓冲区对象和图像纹理之间的区别以及为什么要使用它们是它们可以使用接口(interface) block 。

图像只是纹理,这意味着数据结构中只有 vec4。不仅 vec4,它还可以有其他格式,但数据结构将是一种数据类型。

其中,SSBO 是通用的。他们可以在单个接口(interface) block 中使用 int、float、vec3 数组的组合。

因此,SSBO 比图像纹理更灵活。

关于opengl - SSBO 和图像加载/存储之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19620945/

相关文章:

c++ - opengl 平移与 glulookat

c++ - 简单的 Assimp 程序提供不正确的数据

framebuffer - OpenGL DSA 和 FBO

opengl - glMultiDrawElementsIndirect 很慢

opengl - 在 GLSL 着色器中使用输入/输出结构

c++ - 无法编译任何 opengl/freeglut/glut 源代码

opengl - glVertexAttribDivisor 和 glVertexBindingDivisor 有什么区别?

ruby - 如何在 Ruby 中创建 OpenGL 3.x 或 4.x 上下文?

c - 物体通过世界轴而不是局部轴OpenGL旋转

java - OpenGL 中场景中其他对象的反射