私は、OpenGL 3.3のコンテキスト/ウィンドウ作成のためにfreeglutからSFMLに切り替えました。私はfreeglutを使用してOpenGL:Renderbuffer、デプスバッファ
unsigned int displayMode = GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH | GLUT_STENCIL;
glutInitDisplayMode (displayMode);
で表示モードを初期化するときに今、私は単に、その後
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glDepthFunc(GL_LEQUAL);
glDepthRange(0.0f, 1.0f);
を入力することができ、その後、デプステストが有効になります。しかし、SFMLでは、もう少し複雑です。私はSFMLコードには入りませんが、基本的にSFMLはあなたのためのコンテキスト/ウィンドウを作成します。深度ビットとステンシルビットの数を指定することはできますが、SFMLは実際に深度バッファを割り当てずにデフォルトのフレームバッファに接続するようです。
どうすれば実際にこれを行うのですか?私はあなたがglGenRenderbuffers
、glBindRenderbuffer
、次にglRenderbufferStorage
、glFramebufferRenderbuffer
のような何かをしなければならないと思っています。ドキュメントはちょっと混乱しています。 glRenderbufferStorage
にはinternalformat
というパラメータがあり、24ビットのデプスバッファが必要なことを示す方法はわかりません。また、私は本当にどのようにデフォルトのフレームバッファにアクセスする(または、ダブルバッファリングがあるので、2つのデフォルトのフレームバッファがありますか?