2017年11月9日星期四

游戏中的物理(车辆)(一)

游戏中的物理(车辆)(一)

最近想做一个unity3D 的游戏制作练习,关于我最喜欢的赛车游戏的。苦于汽车的运动物理,一窍不通,所以找了些资料参考。一个是网上的大牛 http://www.cnblogs.com/heyzxz/p/4780337.html
关于制作赛车游戏的一些入门知识(一)(二)的内容,非常有参考性。但是关于游戏的转向控制方面,还是有些不明白的地方,原文作者介绍了一本书“Physics for Game Programmers”,非常好的书,其中第八章是专门讲述游戏中的车辆(包括汽车,摩托车)的物理实现的,遂想要翻译,以作参考。为了简明起见,只翻译有用的部分。

第八章 汽车与摩托车
本章涉及以下内容:
  • 机动车辆的历史
  • 汽车受力图
  • 发动机扭矩与功率(马力):如何根据发动机转速计算它们
  • 档位与换档:如何使用档位来增大施加到轮胎上的扭力
  • 轮胎的滚动摩擦力:它是什么,如何计算
  • 如何计算汽车的加速度和速度
  • 刹车:刹车如何工作,如何在游戏中模拟刹车
  • 轮胎牵引力,以及它如何限制汽车的加速
  • 转向:如何计算转向半径,转向速率,以及如何模拟高速转向
  • 摩托车,及它们如何转向
我们将建立一个汽车模拟器,并模拟一辆跑车的性能和操控。

汽车

在游戏中模拟汽车的运动,需要了解牛顿力学,以及关于动力如何从发动机传递到轮胎上的运动学知识。

  • 机动车的简单历史
机动车已经有很长的历史了。第一辆机动车是一位叫做Nicolas Cugnot 的法国工程师在1769年制作的蒸汽动力的车。这辆车被用来拖拽大炮,最高速度4km/h,这位工程师也是第一个发生机动车事故的人,他在1771年驾驶着他的车撞向了一堵石墙。
到19世纪末,机动车的技术已经取得了很大的进步。一个叫Karl Benz的德国工程师设计并建造了第一辆由燃烧汽油的内燃机驱动的汽车。尽管在接下来的20年中,汽车变得受欢迎,但是它们非常昂贵,并被认为是有钱人的玩具。在1913年,美国的 Henry Ford完善了生产线,使得制造一辆Model T只需要93分钟。这样的生产能力显著降低了购买汽车的费用。到1927年,已经有超过1500万辆Model T被生产及销售。
显然,汽车们没有停下发展的脚步,并已经成为几乎每一个国家的重要交通方式。汽车也成为人们的娱乐方式,不管是他们想要享受速度的快感,或者看起来引领潮流,抑或是仅仅想要享受一段美好的时光。

  • 汽车的基本受力图
下图(8-1)显示了一辆在倾斜路面上行驶的车辆的受力分析图。

路面倾斜的角度是θ,车辆被以下力影响:重力,静摩擦力,滚动摩擦力,空气阻力。发动机施加一个扭力Te 到轮胎上,形成驱动车辆前进的力。在图8-1中,扭力被施加到前轮上。

由重力产生:
垂直斜面向斜下方。FgN = mgcosθ
平行斜面向斜下方。FgP = mgsinθ
根据汽车行驶方向的不同,平行分量可能是推或拉。
垂直于斜面的分量,和力 FNf 与 FNr 相平衡。这是前后轮上的支撑力。这两个力的合力的大小与垂直于斜面的重力分量相同:

发动机产生扭力,驱使轮胎转动。轮胎和地面之间的摩擦力阻碍这种转动,形成一个与轮胎旋转方向相反的阻力。这个摩擦力和扭力的关系如下:Tw :作用到轮胎上的扭力,rw:轮胎半径

稍后我们将看到,发动机产生的扭力,和作用到轮胎上的扭力并不相同。

空气阻力:如第五章中所述,空气阻力可如下表示:
其中 ρ : 空气密度   A:迎风面积  v:速度  CD:空阻系数

空阻方向与速度相反,稍后将会详细讨论。
最后是滚动摩擦力,第七章中已经解释过。它作用在所有轮胎上,阻碍轮胎的滚动。滚动摩擦力的合力FR,与FN的关系如下: μr为滚动摩擦系数。
与汽车行驶方向平行的合力,Ftotal,是发动机扭力,重力,空气阻力,滚动摩擦力的合力。
8.5式中重力在沿斜面方向的分量 mgsinθ,符号为负,表示这个力向后拉。这样,汽车的加速度为:
即 Ftotal/m。
式8.6可以计算出汽车在任意时刻的速度,但是我们要先计算施加到轮胎上的扭力。

没有评论:

发表评论