Не зная более подробной информации о ваших моделях CAD, будет довольно сложно дать именно соответствующие предложения, но я могу предложить несколько вещей, которые я мог бы попробовать.
Использовать иерархические ограничивающие рамки
Если у вас многоуровневое дерево ячеек, вы можете создать ограничивающие рамки для неконечных узлов дерева. Это не поддерживается напрямую в THREE, но вы можете вручную создать эти объекты и проверить их, прежде чем проверять, находятся ли дочерние объекты в выделенной области.
Если ваше дерево не очень хорошо организовано в пространстве или очень плоское, тогда вы можете построить дерево октав и пересечь узлы дерева окт, прежде чем проверять сетки.
Конечно, эти структуры данных должны обновляться всякий раз, когда сетки перемещаются в вашей модели САПР.
Границы мира кэша
Если вы кэшируете версии ограничивающих рамок на всех сетках в мировом пространстве, то вместо проецирования границ в экранное пространство вы можете создать усеченный элемент из области выделения в мировом пространстве и проверить все границы мешей, не выполняя никаких действий. преобразование этих коробок.
Асинхронная проверка
Вместо того, чтобы собирать все пересекаемые границы в одном кадре, вы можете собрать их в несколько кадров, если это занимает много времени.
К сожалению, я не думаю, что радиовещание может многое сделать для вас здесь.
Надеюсь, это поможет!