2つの質問:
さまざまなシェーダーを使用して、大きなVBOで要素をレンダリングしています。GLSL 1.2では、OSXの最新バージョンであるため、正しい場合に使用する必要があります。これは、属性の場所がコンパイラーが決定する場所であることを意味すると思います。これを回避する方法はありますか?たとえば、VBOがインターリーブ(x、y、z、nx、ny、nz、texU、texV)であるため、毎回同じ場所でこれらの属性にアクセスできるようにするには、複数のシェーダーが必要です。しかし、コンパイラがそれらに異なる場所を与えて、その場所が法線になるようにしていることがわかりました。それらの場所が私のVBO属性の場所と一致している必要があります。
最初のGLSLレンダリングが完了したばかりですが、さまざまなポリゴンを重ねてレンダリングして深度テストを有効にするのを忘れたようです。次の方法で深度テストを有効にしました。
glEnable(GL_DEPTH_TEST);
そして、問題は解決しません。シェーダーでそれらを有効にする別の方法はありますか?デプスバッファがこれを処理すると思いましたか?
問題2は解決しました。ウィンドウを作成するときにOpenGL設定を指定する必要があるSFMLの問題であることが判明しました。