Как пересечь Луч с моделью местности?
В настоящее время я занимаюсь разработкой 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
возвращает много хитов. Если это вам не поможет, то я явно что-то упускаю.