如何在OpenGL中启用引力?

时间:2011-03-06 18:01:44

标签: opengl

我有一个球,我必须从高处掉落它应该表现为它在现实世界中的行为意味着它应该下降g = 9.8并且还反弹。任何人告诉我我怎么能做到这一点用c ++打开gl?

3 个答案:

答案 0 :(得分:8)

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

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

简单的每帧循环是这样的:

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

话虽如此,有些人使用OpenGL GPU实现粒子系统进行仿真,但随后又调整了图形概念,原语和图形。计算通过实现物理方程本身计算位置和速度..

答案 1 :(得分:5)

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

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

您可能需要先阅读Physics Engine维基百科文章。

答案 2 :(得分:5)

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

你想要一个游戏引擎。