Extending/sub-dividing Render Buckets

Someone just mentioned something in a post which got me thinking (yeah… just what everyone wants)



Is there a way of sub-dividing Render buckets? i.e. 2 Render Buckets that reside under a top level bucket… like:



GUI owns

GUI1 and GUI2



All are rendered via GUI… but you can pre-render GUI1 or GUI2 if needed.



Is this possible currently?

I know you can implement custom sorting - so you could sort all GUI1 before all GUI2 and control the render order that way.



Or do you mean something more?

@zarch said:
I know you can implement custom sorting - so you could sort all GUI1 before all GUI2 and control the render order that way.

Or do you mean something more?


More of a way of dividing up the components rendered. I know if you were rendering geometries, you could force a geometry list instead of reading a particular queue bucket. However, this doesn't really work with the GUI bucket if you're using Nifty (I think, anyways). This is sorta related to the post where someone was asking how to render nifty to a mesh. There may be a way of doing this already... but the testNiftyToMesh renders the entire GUI bucket (it seems). It would be nice to be able to only render a portion of the GUI bucket (the way you use geometry lists to render only specific meshes).

Anyways, I'm probably missing something here...

Nifty is not rendered in the GUI bucket. So I don’t know how a nifty to mesh thing would be related unless the test is explicitly rendering both or rendering all post viewports.

@pspeed said:
Nifty is not rendered in the GUI bucket. So I don't know how a nifty to mesh thing would be related unless the test is explicitly rendering both or rendering all post viewports.


Hmmm... lets see if I can answer this correctly.
1. I didn't know that!
2. I have no clue!

Still, is it possible to divide up render buckets (sub-grouping of objects... say all tied to Opaque... but split into groups for **insert whatever reason here**?

No. A bucket is a bucket. You can control the sort order in the bucket but you can’t otherwise split them arbitrarily.



If you needed sub-buckets then those would be different buckets. There is no way to add buckets without hacking core right now.



I’m still not clear on why you’d need it in this case. A proper example use case would be necessary to have a deeper discussion about this, I think.

@pspeed said:
No. A bucket is a bucket. You can control the sort order in the bucket but you can't otherwise split them arbitrarily.

If you needed sub-buckets then those would be different buckets. There is no way to add buckets without hacking core right now.

I'm still not clear on why you'd need it in this case. A proper example use case would be necessary to have a deeper discussion about this, I think.


Yep yep... thanks for the answer! I don't really need this... I was just curious.