2012-05-03 2 views
0

У меня есть приложение, которое используется для отображения объектов в 3D. Теперь я хочу улучшить свое приложение. Если я дважды щелкнув по области моего айладжа, я хочу, чтобы они были арестованы и на поверхности, существующие в этой области, чтобы затем разделить эту область. Можно ли их получить? Благодарю.Обнаружение поверхностей трехмерной сетки, выбранной мышью

+0

Является ли это openGL или какой lib вы используете? – Rolle

+0

Я не уверен, что понимаю эту часть «нажмите на область моего айладжа, я хочу, чтобы их арестовали», – SigTerm

ответ

0

Конвертировать клик по окну просмотра в луч в мировом пространстве.

Затем сканируйте свою сцену лучами, чтобы найти пересекающиеся объекты (основанные на выровненном по осям рамке с использованием октета вашей сцены, если у вас есть).

Затем, если вам нужно обнаружить треугольники, проверьте луч на все треугольники в объектах, найденных в запросе сцены. Вы можете оптимизировать этот шаг, если необходимо, построив octtree для сетки объекта. Точка, которая ближе всего к лучу, является точкой попадания.

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

Смежные вопросы