Как включить гравитацию в OpenGL? - PullRequest
0 голосов
/ 06 марта 2011

У меня есть шар, который я должен сбросить с высоты, и он должен вести себя так, как он ведет себя в реальном мире, значит, он должен упасть с g = 9,8, а также отскочить назад. Кто-нибудь может сказать мне, как я могу это сделать в открыть гл в с ++?

Ответы [ 3 ]

8 голосов
/ 06 марта 2011

OpenGL предназначен только для рисования трехмерной графики, он ничего не знает о таких понятиях, как скорость, масса, скорость, время, ускорение и гравитация (или, если уж на то пошло, счетчик калорий из ревеневого пирога).

Вам нужен физический движок или простое физическое моделирование:

Простой цикл за кадром выглядит примерно так:

  • dt = time_now - time_prev_frame
  • соотв. -9,8
  • vel + = acc * dt
  • pos + = vel * dt
  • нарисовать объект в поз.

Тем не менее, есть люди, которые реализуют системы частиц, использующие графические процессоры OpenGL для моделирования, но затем адаптируют графические концепции, примитивы и вычисления для вычисления положений и скоростей путем реализации самих физических уравнений ..

5 голосов
/ 06 марта 2011

OpenGL не является игровым движком. OpenGL просто рисует вещи на экране. И вещи, которые он рисует, - это треугольники. То, как он рисует этот материал, определяется такими параметрами, как освещение и текстуры, и может быть точно настроено шейдерами, но это все.

Вы хотите игровой движок.

5 голосов
/ 06 марта 2011

Прошло немного времени с тех пор, как я занимался программированием OpenGL, но в последний раз я видел, что не было функции «включить гравитацию».

Точное поведение «как оно ведет себя в реальном мире»sic) сильно занижен.Какой материал?Какая температура?Какая форма?И так далее.

Вы можете начать с чтения Physics Engine статьи в Википедии.

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