У меня есть мяч, который я должен упасть с высоты, и он должен вести себя так, как в реальном мире, это означает, что он должен упасть с g = 9,8, а также отскочить назад. может ли кто-нибудь сказать мне, как я могу сделать это в открытом gl в c ++?
3 ответа
OpenGL предназначен только для рисования трехмерной графики, он ничего не знает о таких понятиях, как скорость, масса, скорость, время, ускорение и гравитация (или подсчет калорий в пироге с ревенем, если на то пошло).
Вам нужен физический движок или простая физическая симуляция:
Простой покадровый цикл выглядит примерно так:
- dt = time_now - time_prev_frame
- acc = -9,8
- vel + = acc * dt
- pos + = vel * dt
- рисовать объект на позиции
При этом есть люди, которые реализуют системы частиц с использованием графических процессоров OpenGL для моделирования, но затем адаптируют графические концепции, примитивы и вычисления для вычисления положений и скоростей, реализуя сами физические уравнения.
OpenGL - это не игровой движок. OpenGL просто рисует содержимое на экране. Он рисует треугольники. То, как он рисует этот материал, определяется такими параметрами, как освещение и текстуры, и может быть точно настроен шейдерами, но это все.
Вам нужен игровой движок.
Прошло немного времени с тех пор, как я начал программировать OpenGL, но в последний раз, когда я видел, не было функции «включить гравитацию».
Точное поведение «как он ведет себя в реальном мире» (так в оригинале) очень недооценено. Какой материал? Какая температура? Какая форма? И так далее.
Возможно, вы захотите начать с чтения статьи википедии Physics Engine.
Похожие вопросы
Новые вопросы
opengl
OpenGL (Open Graphics Library) - это графический стандарт и API, который не зависит от платформы и доступен для настольных компьютеров, рабочих станций и мобильных устройств. Он предназначен для обеспечения аппаратно-ускоренного рендеринга и, следовательно, значительно повышает производительность по сравнению с традиционным программным рендерингом. OpenGL используется для таких приложений, как программное обеспечение САПР и компьютерные игры. Стандарт OpenGL, как и OpenGL ES, контролируется группой Khronos.