Autor Wątek: Nieprawidłowy Z-test  (Przeczytany 430 razy)

Offline Montjet

  • Użytkownik

# Kwiecień 07, 2017, 19:25:46
#edit
NAPRAWIONE!
___________________________
Witam,
z jakiegoś powodu wartości głębi są źle wyliczane.
Obliczam je w następujący sposób:
depth = (clamp(gl_Position.z/gl_Position.w, 0.0, 1.0) + 1.0) * 0.5;próbowałem również od razu w fragment shader wpisać po prostu gl_FragCoord.z - wynik był taki sam (poniżej umieściłem kod fragment shader właśnie z tą metodą), a mianowicie chodzi o ten fragment:

Wartość większa powinna zostać usunięta ale jak widać (zaznaczenie czerwone) tak nie jest, a na zielonym jest prawidłowo wykonana operacja.

Obiekty renderowane są jako instancje, wczesny Z-test nie jest włączony, nie korzystam z gl_FragDepth, dodatkowo wyłączyłem na wszelki wypadek GL_DEPTH_CLAMP, GL_DEPTH_TEST włączony.
Wygląda na to, że obiekty renderują się dobrze, tylko te wartości głębi źle wyświetlane są.
FragmentShader:
#version 420

out vec4 frag_colour;

void main () {

frag_colour = vec4(vec3(gl_FragCoord.z), 1.0);
}

???
« Ostatnia zmiana: Kwiecień 08, 2017, 13:34:18 wysłana przez Montjet »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych