Yes, batching quads do not automatically get rebatched just because you changed their Z.
I feel like maybe you don’t understand where z sorting is done or how batching works… probably the former. JME sorts buckets by geometry. It can’t do otherwise. A batch is just a geometry.
Edit: actually, I made an assumption that you were batching yourself… because you didn’t say specifically that you were using JME’s classes. JME cannot auto sort because it doesn’t know what bucket, what sort order, what sort algorithm, etc. to use at that level. Your app knows.
Edit 2: yes, you are batching yourself… reread your post. So where do you expect the magic buffer reordering to happen?
I’m going to assume that the above question is rhetorical and is an euphemisms for saying “you don’t have a clue on how rendering is done in jme” so I guess you aren’t expecting an answer.
So I take that, on the GUI bucket and within the same Geometry, the quads are drawn on their buffer order, completely ignoring their Z value. This is by design and will never change.
A further clarification:
If, on the GUI bucket, I have batched node 1 and batched node 2, does Z values of their quads affect the drawing order, or should I change the Z values of the batched node instead? (i.e. the Z values of batched quads on the GUI node are 100% unuseful?)
A mesh is handed to the GPU all together. This has nothing to do with JME. It’s OpenGL.
JME sends the whole buffer to OpenGL which sends the whole buffer to your graphics card and renders it in the order of the buffer. JME management of “order” ends at Geometry… it will sort the geometry based on Z but that’s it.