panda3d 运行 内存不足

panda3d running out of memory

虽然按照 this 关于如何将 panda3d 与 python 一起使用并编写一个简单的 3d 街机飞行游戏的教程,但当 运行 第 5 期的代码加载一些时出现错误2d 图形用户界面图像。控制台中的错误报告说:

分配 4016 字节内存不足

进程已完成,退出代码为 134

经过相当多的谷歌搜索,我仍然不知道为什么会这样。 GUI 元素只有几千字节,加载更大文件的方式没有任何问题。

我在 lubuntu(安装了 4gb RAM)上使用 panda3d v1.9 和 python 2.7。

非常感谢任何帮助。

带图片的完整源代码可以找到here

它对我来说 运行,尽管速度非常慢。仔细研究一下,您的 world.bam 文件似乎需要很长时间才能加载,因为它有很多顶点(似乎有数百万个)和数千个独立的网格,因此结构效率很低。

即使对 .bam 文件进行非常粗略的预处理以减少绘制调用次数(通过加载它、调用 flattenStrong(),然后再次将其写出)也会导致加载和渲染时间显着减少。然而,即便如此,它仍然存在问题,因为该程序现在正在测试每帧对每个单独三角形的碰撞。

在像这样的飞行模拟器游戏中,更典型的是使用地形引擎 and/or 着色器根据高度图动态改变地形拓扑。这还允许您针对高度图图像进行测试,以检查飞机是否在地面以下飞行,这比对单个三角形进行相交检查要有效得多。