I have a floor that's interrupted by several objects sitting on top:

Example objects intersecting floor

Would it be better for performance to let the floor polygons extend straight through the footprints of these objects? Or should I cut the floor polygons around any permanent objects that will cover up part of it?

  • \$\begingroup\$ Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking. \$\endgroup\$
    – liggiorgio
    Mar 4 at 0:39

1 Answer 1


There are costs both ways.

If you leave an occluded polygon present, you may pay some fill rate / overdraw cost for it (time spent drawing floor pixels that will later be drawn-over by pixels of closer objects anyway). It might take up space in a lightmap that will never be seen, and could have been used to give better lightmap resolution to other parts of your scene.

If you cut it out, now you have more vertices and triangles to render. The cost for those isn't extreme, unless you're vertex bound, but it's not nothing. In particular, small, skinny triangles can add to your fill rate costs because you end up shading 2x2 blocks of pixels all along their edges for very few interior pixels that you actually keep.

Cutting also comes with development costs: each time you want to move objects around on the floor, you have to re-do your cuts, or you have to invest in some auto-cutting tech to do it for you, both of which are time spent not working on other features.

Which of these costs dominates can be situational, so the best way to get an answer to any performance question is to build a test and profile it, to measure which way performs better in your actual situation.

If you asked me to make a bet, I'd say the situation you've shown is not worth worrying about. There's only a tiny bit of overdraw you'd save, and it would come at the cost of adding a lot more triangles to the floor. I wouldn't worry about it until your profiling tells you that you're fill rate bound and ending up with a lot of unnecessary overdraw.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .