OpenGL (LWJGL) 用の Java ラッパーを使用しています
GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
FBO テクスチャ アタッチメント フォーマットを GL_RGBA16F に設定した場合のステータス。実際には、GL_RGBA 以外のすべてでこのエラーが発生します。これが私の FBO テクスチャのセットアップです。
glBindTexture(GL_TEXTURE_2D, texId);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F, _width, _height, 0, GL_RGBA, GL_FLOAT, (ByteBuffer) null);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glBindFramebuffer(GL_FRAMEBUFFER, _frameBuffer);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texId, 0);
glDrawBuffers(GL_COLOR_ATTACHMENT0);
そして、ここに深さの添付ファイルがあります:
_depthBuffer = glGenRenderbuffers();
glBindRenderbuffer(GL_RENDERBUFFER, _depthBuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, _width, _height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, _depthBuffer);
アップデート:
実際、内部フォーマットとフォーマットの場所を次のように入れ替えると: GL_RGBA,GL_RGBA16F FBO は問題なく完了します。
更新 1: これまでのところ、LWJGL フォーラムの誰からも回答が得られていません。また、この問題をバグとして提出しましたが、開発チームからも回答が得られませんでした。他の誰かが、float 形式を使用するテクスチャ アタッチメントを使用して FBO をテストし、完全性を報告できる場合現在、コードにエラーはないと思います。また、2 台のマシンでテストしたところ、同じ結果が得られました。