Как пересечь Луч с моделью местности?


В настоящее время я разрабатываю игру RTS в XNA. До сих пор у меня есть модель местности, сгенерированная из карты высоты и некоторых единиц измерения, которые на ней нарисованы.

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

Для выбора единиц измерения я просто генерирую луч, направленный от курсора в сторону экрана, и выбираю первую единицу, пересекаемую этим лучом. Теперь этого не будет работайте на местности, потому что все это одна модель.

Кто-нибудь может мне помочь?

С Уважением Ник

P. S: Я только что нашел это видео на youtube, которое представляет собой точное решение моей проблемы... к сожалению, без всякой ссылки на код. http://www.youtube.com/watch?v=czHW3oK8_oI

2 4

2 ответа:

Возможно, этот пример из клуба создателей будет хорошей отправной точкой:

Http://creators.xna.com/en-US/sample/pickingtriangle

Выбор треугольника изображения http://creators.xna.com/assets/cms/images/XNA_PickingTriangle_01_small.jpg

Я не знаком с XNA, но похоже, что ваша модель местности-это сетка, и вы хотите вычислить пересечение луча с сеткой.

Если это так, то есть описание пересечения луча с сеткой в нижней половине этой страницы. Он описывает, как получить точку пересечения и другие данные.

В общем случае, Гугл XNA ray mesh intersection возвращает много обращений. Если это тебе не поможет, значит, я что-то упустил.