OpenGL计算着色器内置变量有以下几个,先上个图看下Opengl编程指南里面的描述。
gl_GlobalInvocationID是当前执行单元在全局工作组中的位置的一种有效的三维索引,它的准确值是gl_WorkGroupID*gl_WorkGroupSize+gl_LocalInvocationID。在看一下在OpenGL编程指南里关于这个变量的使用:
#version 430 core
layout (std140, binding = 0) uniform attractor_block
{
vec4 attractor[64]; // xyz = position, w = mass
};
layout (local_size_x = 128) in;
layout (rgba32f, binding = 0) uniform imageBuffer velocity_buffer;
layout (rgba32f, binding = 1) uniform imageBuffer position_buffer;
uniform float dt