Android и openGL, как узнать, когда объект находится в поле зрения камеры - PullRequest
0 голосов
/ 06 марта 2012

У меня есть приложение, в котором я использую min3d, чтобы настроить для меня сцену и вид из камеры в opengl, и я смог реализовать выборку лучей, но из-за того, что в моей сцене будет более 120 или более интерактивных объектов, щелчки экрана иногда будут немного, и объект, который не на экране, получит щелчок, возможно, потому что это просто вне камеры.

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

Часть, которую я пропускаю, это как отслеживать, какие объекты на экране. Я знаю, что у меня уже есть математика, чтобы получить такую ​​вещь. Я немного запутался в том, как правильно ее реализовать, чтобы получить объекты на экране. Любая помощь будет потрясающей. Будет ли это как-то связано с трекингом внутри трещины?

1 Ответ

1 голос
/ 07 марта 2012

Я считаю, что то, что вы ищете, обычно называют «выбраковкой усеченного конуса».По сути, вы оборачиваете простую ограничивающую рамку / сферу / цилиндр / и т. Д. Вокруг своего объекта, а затем проверяете эту простую геометрическую форму на каждой из плоскостей усеченного конуса, чтобы увидеть, находится ли он полностью за пределами рамки.

Этот учебник может помочь вам:

http://www.lighthouse3d.com/tutorials/view-frustum-culling/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...