0

エラーが発生します

fatal error C9999: *** exception during compilation ***

たとえば、テクスチャ書き込みにImageapiを使用するGLSLシェーダーを再コンパイルしようとするたびに

layout(binding = 0) coherent uniform image3D Voxels;

ただし、最初のコンパイルは正常に機能します。他の誰かがこれに遭遇しましたか、そして回避策はありますか?

4

1 に答える 1

2

さて、私は回避策を考え出しました。基本的に、再コンパイルプロセスをもう少し破壊的にする必要がありました。

まず、(現在)すべてのシェーダー(vert、frag、geomなど)をシェーダープログラムからデタッチする必要があります。

次に、個々のシェーダーを再コンパイルするときに、新しいシェーダーIDを削除して再作成する必要があります(現在)。

glDeleteShader(shader_id);
shader_id = glCreateShader(GL_FRAGMENT_SHADER);

次に、シェーダーソースをリロードできます。その後、安全に再接続するか、新しいシェーダーをシェーダープログラムに接続して、すべてを再リンクします。うまくいけば、すべてが機能します。

于 2012-06-22T23:03:22.927 に答える