Ich verwende OpenGL mit GLFW und GLEW. Ich rende alles mit Shadern, aber es scheint, als ob der Tiefenpuffer nicht funktioniert. Die Shadern Ich bin für 3D-Rendering sind:Depth Buffer scheint nicht zu funktionieren - OpenGL Shader
Vertex Shader
#version 410\n
layout(location = 0) in vec3 vertex_position;
layout(location = 1) in vec2 vt
uniform mat4 view, proj, model;
out vec2 texture_coordinates;
void main() {
texture_coordinates = vt;
gl_Position = proj * view * model* vec4(vertex_position, 1.0);
};
Fragment Shader
#version 410\n
in vec2 texture_coordinates;
uniform sampler2D basic_texture;
out vec4 frag_colour;
void main() {
vec4 texel = texture(basic_texture, vec2(texture_coordinates.x, 1 - texture_coordinates.y));
frag_colour = texel;
};
und ich bin damit auch die Tiefenpuffer und Keulung Gesicht
glEnable(GL_DEPTH_BUFFER);
glDepthFunc(GL_NEVER);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glFrontFace(GL_CCW);
So sieht es aus:
wow ... Jetzt fühle ich mich dumm. Vielen Dank! –
@LuizAugustoWendt: Sie haben auch 'glDepthFunc (GL_NEVER)' verwendet, was bedeutet, dass der Tiefentest * niemals bestanden wird. Also sollten alle Fragmente ausgesondert werden. Der einzige Grund, warum etwas auf dem Bildschirm angezeigt wurde, ist, dass Sie das falsche aktiviert haben. –
Ja, ich benutzte nie nur um zu testen, ob der Tiefentest funktionierte: ~ –