Пересекающийся усеченный

Я пытаюсь найти способ определить, пересекаются ли два фруста и, если это так, насколько велико это пересечение (например, 100%, если два фруста находятся в одном и том же месте, 0%, если они не касаются).

У меня есть положение, объем и все виды данных о двух Frusta, я просто не знаю, как их использовать. Я взглянул на теорему о разделяющей оси для обнаружения столкновений, но не могу точно определить, действительно ли это то, что я ищу.

Кто-нибудь есть какие-либо предложения о направлении идти?

1 ответ

SAT скажет вам только, если они касаются. Он не сможет дать вам перекрытие в процентах. Чтобы рассчитать процент перекрытия фруста, я думаю, что вам нужно будет рассчитать объем многогранника, созданного путем пересечения фрусты, и разделить на объем "основного" усеченного конуса.

Расчет пересечения Frusta скажет вам, если они перекрываются. Один из способов сделать это - создать bsp из каждого и выполнить операцию пересечения CSG.

Получив многогранник сечения, вы можете рассчитать его объем, разделив его на тетраэдры и сложив все объемы тетраэдров. Существуют научные статьи, в которых тетраэдризация проводится непосредственно из представительства BSP.

Другие вопросы по тегам