3 hours ago, scarypajamas said:
Could you clarify what a "regular" BSP is? I'm aware of three distinct kinds: node-storing, leaf-storing, and solid-leaf.
Sorry, i'm not well informed about those kinds. However, the idea should work with minor modification for any approach i guess.
What i mean is that the BSP needs to be build for the entire area, and only after completition the brush for a leaf can be determinated. As a post process you could remove branches of the tree that turn out useless.
3 hours ago, scarypajamas said:
Would there be two separate lists (one for the brushes in front and one for the brushes behind) or just one list combining both?
Yes. Two lists because for any split you can already be sure what is at front and back - you are only unsure about which IDs will matter later.
I don't think a single list is sufficient.
Edit:
hmm... you're probably right. Following my own advice of thinking about spaces not splits, yes there should be only one list that just contains all brushes intersecting the nodes space (defined by it's convex polygon).
That's the origin of all the confusion i guess - makes sense now, almost
Likely it's not necessary to iterate over edges to find a common ID for leafs. There may be more ID than one for intersecting brushes, but for the openeng post the leaf marked 'empty' would contain only the blue box ID.
3 hours ago, scarypajamas said:
In picture #5 only the front list of the new splitter would contain the Id of the blue brush.
No, all splits in the images would contain the blue brush at front and back.
A parent ID could be ignored for the child only if the child space does no longer intersect the brush, but all spaces we see intersect the blue brush. So the blue brush ID would propagate down to all the leaf nodes that intersect it.
I think it's easier to imagine if you think about the polygon shape for each nodes space, but hard to imagine if you focus only on the split line.