Поскольку ваши скриншоты не работают, я собираюсь сделать дикое предположение и предположить, что проблема, с которой вы столкнулись, состоит в том, что рисование прямоугольников сзади и вперед приводит к странным наложениям.
Один из подходов к решению этой проблемы - использовать простое разбиение двоичного пространства . По сути, разверните каждый передний прямоугольник до бесконечной плоскости. Затем разделите все боковые прямоугольники, где эти плоскости пересекаются. Затем рисование спереди назад не должно перекрывать продукт, так как боковые прямоугольники будут разделены там, где возникли бы проблемы перекрытия.
Редактировать: Ах, теперь, когда ваши скриншоты работают, я не думаю, что это ваша проблема. Ах, хорошо, я все равно оставлю ответ.