如何在OpenGL中启用引力?

Mah*_*tab -4 opengl

我有一个球,我必须从一个高度下降它应该表现,因为它在现实世界的行为意味着它应该下降与g = 9.8并且还反弹.任何人告诉我如何在开放的gl中做到这一点C++?

Mac*_*cke 9

OpenGL仅用于绘制3D图形,它不知道速度,质量,速度,时间,加速度和重力(或大黄饼卡路里计数等)的概念.

您需要物理引擎或简单的物理模拟:

简单的每帧循环如下所示:

  • dt = time_now - time_prev_frame
  • acc = -9.8
  • vel + = acc*dt
  • pos + = vel*dt
  • 在pos处绘制对象

话虽这么说,有些人使用OpenGL GPU实现粒子系统进行仿真,然后通过实现物理方程本身来调整图形概念,基元和计算以计算位置和速度.


Ken*_*Ken 5

自从我完成OpenGL编程以来已经有一段时间了,但最后我看到,没有"启用重力"功能.

"因为它在现实世界中表现"(原文如此)的确切行为是非常不明确的.材料是什么?温度是多少?形状是什么?等等.

您可能希望从阅读Physics Engine维基百科文章开始.


dat*_*olf 5

OpenGL不是游戏引擎.OpenGL只是将内容绘制到屏幕上.它绘制的东西是三角形.他们如何绘制这些东西是由照明和纹理等参数决定的,可以通过着色器进行微调,但这就是它.

你想要一个游戏引擎.