Bug: bloom filter in object mode and textures with alpha threshold

Hi,

I have built a test case that shows a possible bug. On the screenshot you can see the bloom filter in object mode which doesn’t glow through alpha textures.
The box in front of the camera has a texture with alpha channel and an alphaThreshold of 0.5.

test case:

screenshot:
http://alrik-online.de/alrik/screens/bloomAlphaBug.jpg

regards

Alrik

Glow is a post-process effect, basically. To the post-processor, there is no ‘behind the transparency’… just a big flat object.

ok I understand. Is there any way to get this working or to render glow objects before transparent geometry?

you can put your transparent object in the translucent bucket and the post process will be rendered behind it

this only works in the test case. Now in my game the glow effect doesn’t work and I see the “glowing” object through all other geometries. Why is it just a big flat object to the post-processor but not to the normal Lighting shader? Is alphaThreshold unsupported by the depth buffer?

uh yeah you need to add a transluscent bucket filter at the end of your stack for it to work properly. I forgot to mention that.

This is unrelated to the alpha discard threshold. you have a semi transparent object meaning it’s not 100% transparent.

As far as I remember, in material you have GlowColor, set it to : 0.0 0.0 0.0 1.0 (notice LAST value), so the object will cover 100% of glow, you’ll not see any glow through it. If you have partial transparent object, try to set the last value to 0.5.

It was long time since I played with glow, so maybe there is something more that I just dont remember. Try it at least and tell me if it helps.

I have a glow map on the object so I don’t know if this trick is working. The screenshot shows 2 potions. The left one is covered by the weaving grass blade which has AlphaThreshold 0.5 and the right one is not covered by anything and it work fine :smile:
Hope you understand my problem better now :blush:

http://alrik-online.de/alrik/screens/javaw%202015-04-09%2013-33-04-01.png

Yes I understand, I think that we have similar situations:

The torch have glowmap that glows the part under the particles (fire) to increase it’s effect, and the glow can’t be seen through walls, doors etc. This is because of that parameter, GlowColor set in every wall, door etc to the specific value. Try to do it in your grass’ material.
Later I’ll post some other screens to prove that. Now I’m at work and don’t have my game here.

It doesn’t work :confused: The ground and the grass are the same mesh with the same material. Maybe thats a problem. If I apply your tips, the glow effect disappears moreover I cannot see the ground/grass throuch the potions anymore :frowning:

Why is it not possible to see glow through transparent textures? The post PSSM shader can handle transparent textures. I don’t understand the problem of why the post processor see this texture as a flat object.

Because the Z values were filled in. There is a flat object there preventing the glowing object from being drawn.

Why does it work if i render another transparent texture in a second viewport?

viewPort = app.getRenderManager().createMainView("ViewPort", cam);

The javadoc tells me: “The view will be processed before the post viewports but after the pre viewports.”

http://alrik-online.de/alrik/screens/javaw%202015-04-09%2023-51-51-79.png

I’m not sure what I’m looking at. Show it with and without.

Also note: if you are using alphaTest/alphaFallof then stop that. Use alphaDiscardThreshold as alphaTest is buggy in 3.0 and is removed in 3.1.

I’m not gonna lie I only skim-read this topic, but does by any chance this relate to:

I didn’t use alphaTest/alphaFallof. As I mentioned before I use alphaDiscardThreshold. The first screenshot shows the two glowing objects. The right one isn’t covered by the grass but the left one is. The transparent grass and the ground are the same mesh. On the second screenshot you can see the previous ground mesh, the glowing object and a new transparent grass mesh which is attached to another node in another viewport.

The screenshot with the second viewport shows that it is possible to see glowing objects through transparent textures without rendering the post processors first and withoud translucent bucket flters.

What do you mean with “alphaTest is buggy in 3.0 and is removed in 3.1”? As far as I understand I shouldn’t use alphaTest/alphaFallof and alphaDiscardThreshold is removed in 3.1. Do you mean there is no alphasupport in 3.1 anymore?

@JESTERRRRRR Thanks for the information. FrozenShade has already mentioned it before. I tried it but it seems that nothing happens :-/

by the way, I have the same problem. Is it a normal behavior? =>

Who said alphaDiscardThreshold was removed? That is 100000% not true. I don’t always have time to paste in javadoc references. If you don’t know what alphaTest/alphaFalloff are then don’t worry about it.

If your grass is obscuring the glowing object then for some reason the alphaDiscardThreshold is being ignored in that particular view. We don’t have a test case for that so it’s hard to tell if it’s a setup issue or not.

Okay sry I have missunderstood what you said. I have read “alphaTest is…” as two separated words.

I have already linked a test case in my first post which shows the problem.

ok that’s actually a bug in the glow pre pass that doesn’t take into account the alpha discard threshold.

However if you do as I said : put your grass in the transluscent bucket and add a TransluscentBucketFilter at the end of your filter stak it will work.

EDIT: I mean as a warkaround.

Sorry, I assumed the test case was for the first image you posted since it used the teapot. And that one obviously won’t work because the transparent part is solid.