Вектор к ближайшей точке изоповерхности на метаболлах - PullRequest
1 голос
/ 08 июня 2011

В настоящее время я делаю игру-прототип, в которой игрок идет по изоповерхности коллекции движущихся метаболлов.Я уже реализовал хождение по сфере с вектором вперед и вверх.Чтобы распространить это на метаболлы, мне нужно иметь возможность запросить произвольную точку, направление к ближайшей поверхности и расстояние до ближайшей поверхности, чтобы иметь возможность привязать игрока к поверхности после того, как я переместил его впередвектор.Я могу рассчитать направление, взяв средневзвешенное значение для всех векторов, но как мне получить расстояние?

Я использую функцию 1 / (x * x + y * y + z * z) сИзоповерхность 1 для моих метаболов, но я был бы признателен за любое обобщение, чтобы я мог использовать тот же подход для других фигур.

1 Ответ

0 голосов
/ 08 июня 2011

В общем, вы просто получили бы свою функцию, чтобы получить нормаль на поверхности. У Blackpawn есть хорошее объяснение, как это сделать в вашем конкретном случае здесь .

Как только вы получили нормаль, двигайтесь вдоль его направления, пока не дойдете до изоповерхности (это общий поиск "корня").

...