カラー シェーダに問題があります。
5 つのモデルを作成し、カラー シェーダーを適用して選択すると、レンダー リストに最後に追加したオブジェクトが他のオブジェクトよりも前にレンダリングされます。
最初のオブジェクトが画面にレンダリングされ、最後のオブジェクトが最初のオブジェクトの色をオーバーライドするためだと思います。
左から右へ:
右から左へ:
私はすでに有効にしてGL_DEPTH_TEST
おり、GL_CULL_FACE
またglClearDepth(1.0f)
、glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
次のシェーダーを使用しています。
頂点シェーダー:
#version 120
void main()
{
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
フラグメント シェーダー:
#version 120
uniform vec3 color;
void main()
{
gl_FragColor = vec4(color,1.0);
}