我的项目应该从glsl着色器的纹理中的任意/原子读写操作中受益匪浅。 Image加载存储扩展是我需要的。唯一的问题是,我的目标平台不支持OpenGL 4。 是否有OGL 3的扩展可以获得类似的结果?我的意思是,在碎片着色器中的某种纹理或共享缓冲区中的原子读/写操作。
答案 0 :(得分:4)
Image Load Store,尤其是原子操作是必须由特定硬件功能备份的功能,这些功能与计算着色器中使用的功能非常相似。只有部分GL3硬件可以处理它,并且只能以有限的方式处理。
Image Load Store在核心配置文件中,所以如果您的硬件(和驱动程序)能够使用OpenGL 4.2,那么您根本不需要任何扩展
如果您的硬件(和驱动程序)功能低于GL 4.2,但高于GL 3.0,则可以可能使用ARB_shader_image_load_store
扩展名。
OpenGL 3.0 and GLSL 1.30 are required
如果您的硬件低于GL 4.2并且无法使用此扩展程序,那么您无法做任何事情。只是有一个替代的代码路径,纹理采样和渲染纹理,没有原子(我知道这是可能的,但没有“原子的巨大好处”),或只是向那些还没有升级他们的装备的用户报告错误。
希望它有所帮助。