Как пересечь Луч с моделью местности? - PullRequest
4 голосов
/ 09 июня 2010

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

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 09 июня 2010

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

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

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

2 голосов
/ 09 июня 2010

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

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

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

...