Да, хотя полный ответ будет слишком длинным для этого пространства.
Прежде всего, если у Вас нет много узлов, то линейная, скорее всего, будет хорошо, и вы не должны ничего , если производительность не видел уже страдать изменить.
Во-вторых, вы хотите, в общем, применить какое-то иерархическое разложение, например quadtree. Это способ использовать больше памяти (и больше времени спереди, амортизируется во время поиска), чтобы исключить элементы из рассмотрения в так называемой «широкой фазе». Некоторое усердие в Интернете поможет, как и книга «Real-Time Collision Detection», автор Christer Ericson.
Это направление, о котором я думал, но это требует, чтобы я сам его реализовал. Может быть, лучше использовать java3d и использовать сценарграф и сбор уже реализованных. – stimpie
+1 для «оптимизируйте, когда вам нужно». –