Alpha scissor render problems

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By klaas

Hi.
I’m currently experince some major rendering flaws.

The tree on the left renders just fine in every aspect. I only wanted to reduce the amount of drawcalls and merged the trunk and leafes to one texture atlas.
The second tree does not have a shadow when i use alpha scissor. It renders a shadow when i use opaque pre-pass but that doubles the draw calls again. Also i have to turn of mipmapping for the texture atlas because it glitches with the z ordering.

I’ not quiet sure why a alpha scisssor rendering should need a pre pass, that should only be necessary when rendering transparent objects.

Does anybody experience the same problems? I would suggest this is a bug. Or does anyone has a explenation for this behaviour?

Image embeding doe not seems to work … link to image

Three trees

Update:
after looking deeper into godot … alpha scissor seems to be linked with transparency. Wich does not make sense to me, i thought we use scissor to not use expensive transparency. But in the shader you can only use scissor with an alpha value wich makes the shader to a transparent shader. Imho this requires the objets to be sorted and so on … this drops the performance.

Am i wrong?

Update 2:
A simple

	if( albedo_tex.a <= alpha_scissor_threshold ){
	discard;
}

in the shader fixes the problem.

BUT … this keeps me thinking how the godot render pipeline works. Especially in the means of shadow mapping. I would love to have a detailed explaintion of the render process to understand whats happening.