Как определить, что объект переместился за пределы видимого окна в OpenGL ES? - PullRequest
0 голосов
/ 07 февраля 2011

В моем приложении для Android я использую GLSurfaceView, чтобы рисовать 3d-объект, похожий на прямоугольникЯ оживляю этот объект, переводя его с помощью OpenGL ES apis.В какой-то момент во время анимации объект исчез бы из видимого окна области просмотра.На данный момент я должен удалить этот объект из коллекции других объектов, которые рисуются.Как я могу обнаружить, что объект исчез из поля зрения?Образец короткого кода приветствуется.

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Вот класс Frustum для Android , порт кода из здесь .Он позволяет вам извлекать параметры усеченного контура из OpenGL, а затем тестировать различные геометрические примитивы (точки, сферы, кубоиды, выровненные по оси) для включения в том представления.

  1. Код обработки ошибок, который должен быть избыточен в методе update ().См. здесь для истории об этом.Похоже, что это heisenbug.
  2. extractFromOGL () использует glGetFloat - этот метод не реализован в программном рендере PixelFlinger.Если вы ориентируетесь на действительно бюджетные устройства или используете эмулятор, вам придется самостоятельно вычислять матрицы проекций и моделей и вызывать update () вручную.
1 голос
/ 07 февраля 2011

То, с чего вы смотрите, называется отбор просмотра усеченного * .

Обрезание просмотра - это геометрическое представление объема, видимого для виртуальной камеры.Естественно, объекты вне этого тома не будут видны на конечном изображении, поэтому они отбрасываются.Часто объекты лежат на границе смотрового усеченного конуса.Эти объекты нарезаются на части вдоль этой границы в процессе, называемом отсечением, и части, лежащие за пределами усеченного контура, отбрасываются, поскольку нет места для их рисования.1009 *

http://www.lighthouse3d.com/opengl/viewfrustum/

http://www.crownandcutlass.com/features/technicaldetails/frustum.html

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