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