Если (с целью обнаружения столкновения) трехмерные объекты представлены в игре сферами, что является хорошим алгоритмом для обнаружения столкновения между сферами?
Если у каждого объекта есть позиция в последнем кадре и новая (желаемая) позиция, то каков хороший алгоритм, который будет определять столкновения, в которых сферы не пересекались в предыдущем кадре, и они могут не пересекаться во втором кадре, но они пересекались где-то посередине?
источник
Используйте тест развертки, как показано в этой статье Gamasutra.
источник
С верхней части моей головы:
И это все, что нужно, я ожидаю, что это будет довольно быстро.
источник
Вот еще одна хорошая статья о Гамасатуре .
источник
Говоря как кто-то, кто сделал это: это не стоит хлопот . Если вашему игровому дизайну это совершенно не нужно, и почти наверняка это не нужно, вы потратите гораздо больше усилий, чтобы работать быстрее, чем ожидаете. И это будет медленнее, чем вы хотели.
источник
На Flipcode есть статья о том, как получить обнаружение столкновений с помощью математики . У него есть круг-круг. Существует способ точно определить точку столкновения и проверить, есть ли столкновение вообще.
источник
Обнаружение столкновения для движущегося объекта обычно называется «Расчетом охвата объема», вот несколько кодов / статей по этому вопросу.
http://www.gpu-voxels.org/demos/ (Демо)
Библиотеки исходного кода:
https://github.com/fzi-forschungszentrum-informatik/gpu-voxels
https://libigl.github.io/tutorial/#swept-volume
https://github.com/gradientspace/geometry3Sharp
Статьи:
http://gamma.cs.unc.edu/SV/sm03.pdf
https://www.cs.columbia.edu/~allen/PAPERS/abrams.swept.pdf (к сожалению, нет исходного кода)
http://www.realtimerendering.com/intersections.html (довольно большой набор ссылок)
источник