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

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

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

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

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

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

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

2 ответа

Решение

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

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

http://creators.xna.com/assets/cms/images/XNA_PickingTriangle_01_small.jpg

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

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

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

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