LWJGL Forum

Programming => OpenGL => Topic started by: noncompetitive_antagonist on November 15, 2020, 05:20:21

Title: I don't know how to test depth when assigning z indices to shader uniforms
Post by: noncompetitive_antagonist on November 15, 2020, 05:20:21
Hello! I'm trying to render textures at different z indices, by assigning values through my shaders. I've tested that I am able to successfully set my uniform values prior to running my shader program. Here is my attempt at setting the z-index in my vertex shader:


#version 140

in vec2 position;
in vec2 textureCoords;

out vec4 color;
out vec2 uvCoords;

uniform float zIndex;
uniform vec4 matColor;
uniform mat4 projection;
uniform vec4 offset;
uniform vec2 pixelScale;
uniform vec2 screenPosition;

void main()
{
    color = matColor;
    gl_Position = projection * vec4((position * pixelScale) + screenPosition, 0, 1);
    gl_Position.z = zIndex;
    uvCoords = (textureCoords * offset.zw) + offset.xy;
}


I am fairly certain that this is indeed setting the z-index properly, since if I set it to an out-of-bounds value (e.g. 1.01f), it causes textures rendered at that value to disappear. This, and some google searches, makes me think that I'm missing some way of enabling depth-testing... Here is the code I'm using to (try to) enable depth testing:


        glEnable(GL_BLEND);
        glEnable(GL_DEPTH_TEST);
        glEnable(GL_ALPHA_TEST);
        glDepthFunc(GL_LESS);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);


I've tried disabling GL_BLEND, as some search results suggested, but this has not done the trick. What am I missing here?

Thanks!
Title: Re: I don't know how to test depth when assigning z indices to shader uniforms
Post by: noncompetitive_antagonist on November 15, 2020, 23:56:15
I figured out the problem--I was disabling depth testing elsewhere in my code.  :-[