Sorry, I haven’t had a chance to make the new video yet (I can tonight if the following doesn’t turn out to be sufficient), but
I guess a very close approximation to this particular subdomain of problems I’m facing would be something like what’s available in Unreal 4’s editor, which manages to display stuff like this:
Here we have a depth of field blur on one layer for the scene, and clean crisp interaction handles, object outlines, and bounding boxes on a separate layer for intractable and symbolic elements. The outlines are presumably generated with something akin to a bloom filter, and yet they are still occluded by elements in the scene, but also do not interfere with the DoF filter applied to that scene. I want to be able to achieve basically that, a crisp and clean bloom or outline filter on the Handles in one layer / ViewPort, and a DoF blur on assets in a separate layer / ViewPort.
So in my case, and the image above, I think exceptions are definitely desirable. (And I imagine this case extends to many game that want depth of field blur, but not on symbolic things like character or occlusion outlines or waymarkers, because symbolic things shouldn’t be subject to physical effects) . I agree that Post Effects should be the second to last step, but the last step should definitely be compositing. I don’t know that its sensible to prevent the user from compositing multiple post effects. Is this by design for some reason I’m not seeing, or is it more of a known problem?
So, one thing I noticed is that even though the background goes black behind my transformation handles when I apply a bloom filter to them, the blackness seems to be restricted to that particular viewport / quad. So if I move the HandleVP quad to the left or right, I can still see the scene rendered where the HandleVP isn’t in the way. Similarly, if I change the Quad’s blend mode to something like BlendMode.AlphaAdditive, the scene behind it adds up over the black portions and shows through (though, it also adds to the non-black portions, making the glowing handles too bright).
This would imply the SpaceVP and *AssetVPs are getting rendered, but the HandlesVP is just occluding them with its black background. It seems like it should be simple to have the BloomFilter give the HandleVP a clear transparent background instead of a black background, but I can’t figure out where in the code the background is being set to an opaque black. I think I’m very confused as to how exactly background clearing works. I tried reading through / mucking about with the code but clearly my intuitions must be wrong because if anything it has just left me more confused .
Is there any good documentation on multi pass filters or multiple render targets in JME3? Maybe some advanced guide to designing my own multi pass filters? I see something called ComposeFilter that I would expect to do what I want, but it specifically says that it’s important for the alpha color to be 0 in order for it to work . . .which apparently isn’t the case here?