我收到错误
fatal error C9999: *** exception during compilation ***
例如,每当我尝试重新编译使用 Image api 进行纹理写入的 GLSL 着色器时
layout(binding = 0) coherent uniform image3D Voxels;
但是,初始编译工作正常。有没有其他人遇到过这种情况,有没有解决方法?
好的,我想出了一个解决方法。本质上,我不得不让我的重新编译过程更具破坏性。
首先,(现在)有必要将所有着色器(vert、frag、geom 等)从着色器程序中分离出来。
其次,在重新编译单个着色器时,(现在)需要删除并重新创建一个新的着色器 ID
glDeleteShader(shader_id);
shader_id = glCreateShader(GL_FRAGMENT_SHADER);
然后您可以重新加载着色器源,之后您可以安全地重新附加,或者更确切地说将新着色器附加到您的着色器程序,重新链接所有内容,希望一切正常。