Я ищу метод, чтобы определить, сталкивается ли луч с треугольником и расстояние до точки столкновения в 3D.
метод как код ниже или что-то подобное
float GetCollisionsoint(Vector3 RayPosition, Vector3 RayDirection, Vector3 a1, Vector3 a2, Vector3 a3)
{
}
заранее спасибо!
о, и если вы сейчас хотите, чтобы проголосовать за меня, пожалуйста, прокомментируйте, почему я знаю, что я делаю неправильно.
Дан воскресенье представляет алгоритм и эталонная реализация. Если треугольник нормальный и u
,v
векторы предварительно вычисляются, алгоритм сводится к внутренним (точечным) произведениям. Если предварительно вычислено u
,v
,n
нормализуются, есть дальнейшие оптимизации: <u,u> = <v,v> = 1
,
Есть довольно хорошая рецензия на эту тему в http://www.lighthouse3d.com/tutorials/maths/ray-triangle-intersection/, вместе с некоторым примером кода.