指针进入计算着色器的输入结构



再次,我对我的计算着色器有问题...我想将包含指针的结构传递到计算着色器中。这是我的结构示例:

struct couleurStruct {
    float r;
    float g;
    float b;
    float a;
    float *x;
};

这是我的SSBO初始化:

couleurStruct *coul;
coul = (couleurStruct *)glMapBufferRange(GL_SHADER_STORAGE_BUFFER, 0, 1 * sizeof(couleurStruct), bufMask);
//coul->x = (float *)glMapBufferRange(GL_SHADER_STORAGE_BUFFER, 0, 1 * sizeof(float), bufMask);
coul->r = 0.0;
coul->g = 1.0;
coul->b = 0.0;
coul->a = 1.0;
coul->x[0] = 0.5;
glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 4, structBuffer);

我尝试了很多不同的初始化,但没有成功...

因此,是否有一种方法可以分配所需的所有内存(因为我知道我指示指向的每个阵列内的内存)并将其传递给计算着色器?还是将指针传递给计算着色器真的不可能?

谢谢您的帮助!

opengl中的着色器(以及为此的Vulkan/d3d)都没有指针。您可以做的最多的是向其他一些数据结构提供索引。因此,您可以将x作为其他数组中的索引。虽然目前尚不清楚为什么需要成为指针。

相关内容

  • 没有找到相关文章

最新更新