Как обычно обновляются точки в большой игре OpenGL с множеством движущихся 3D-объектов? - PullRequest
1 голос
/ 04 февраля 2012
  1. Точки, рассчитанные с помощью собственного физического движка и затем отправляемые в OpenGL каждый раз, когда он должен отображаться, например, с glBufferSubDataArb, с обновленными координатами летающего ствола

  2. Существует множество бочек с одинаковыми мировыми координатами, но почему-то для каждого из них вы говорите OpenGL использовать разные преобразования матриц.Когда ствол движется, вы как-то обновляете его матрицу трансформации, чтобы отразить, в каком направлении он вращался / переводился в мире.

  3. Другим способом

Кроме того, если ответ # 2, есть ли какой-нибудь простой способ сделать это, например, с помощью абстрактного кодачем манипулировать матрицами самостоятельно

1 Ответ

5 голосов
/ 04 февраля 2012

OpenGL - это не граф сцены, это API рисования.Последние версии OpenGL (ядро OpenGL-3 и выше) отражают это, вообще не управляя состоянием матрицы.На самом деле ответ 2, более или менее.И на самом деле вы должны иметь дело с математикой матрицы.OpenGL-3 больше не предоставляет никаких примитивов для этого.

Обычно физический движок видит объект как твердое тело с выпуклой оболочкой.Естественным способом представления такого тела является использование матрицы 4 × 3 (матрицы вращения 3 × 3 и вектора трансляции).Так что если вы используете физический движок, вам все равно представят такие матрицы.

Также вы должны понимать, что OpenGL не поддерживает сцену, поэтому вы ничего не «обновляете».Вы просто рисуете свои данные, используя OpenGL.Матрицы загружаются по мере необходимости.

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