多线程渲染与物理模拟

介绍

作者:英特尔软件与解决方案事业部 Rajshree Chabukswar、Adam T. Lake 和 Mary R. Lee

了解如何通过简单的物理模拟演示来消除多线程环境中的渲染与物理模拟间的相互影响。本文中提供的代码样本可用作范例,或者直接应用在您的游戏引擎中。

本文演示了立方体内的反弹球体,显示了牛顿物理学中的“球面-球面”和“球面-平面”碰撞检测机制。一开始,球面相互碰撞,并与立方体壁面碰撞。检测到碰撞后,会执行碰撞反应代码,以计算新速率。用户可选择运行多线程或单线程版本。会采用线程操作,在主线程中进行渲染,在另一个独立线程中计算物理等式。

目的是展示如何使用独立线程来独立于实际渲染进程,执行 CPU 密集型物理计算。随着未来处理器架构向着多个内核发展,使用多条线程来执行不同任务将受益匪浅。因此,通过多条线程独立工作,充分利用可用CPU周期,可使应用的性能得到显著提升。本文首先探讨了此项实施的基础情况,之后介绍了我们演示中用到的物理概念。此外,还包括未来的工作和参考部分。


查看全文(PDF 432KB)

下载源代码

如需更全面地了解编译器优化,请参阅优化注意事项