在遵循有关如何在python中使用panda3d并编写一个简单的3d街机飞行游戏的this教程时,运行第5期中的代码加载一些2d GUI图像时出现错误。控制台中的错误报告说:

内存不足分配4016个字节

流程结束,退出代码为134

经过大量的谷歌搜索后,我仍然不知道为什么会发生这种情况。 GUI元素只有几千字节,并且较大文件的加载方式没有任何问题。

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

非常感谢任何帮助。

包含图像的完整源代码可以找到here

最佳答案

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

即使对.bam文件进行非常粗略的预处理以减少绘图调用次数(通过加载,调用flattenStrong(),然后再次将其写入),也会导致加载和渲染时间大大减少。但是,即使那样,它仍然是有问题的,因为该程序现在正在测试每帧与每个三角形的碰撞。

在这样的飞行模拟器游戏中,更典型的是使用地形引擎和/或着色器基于高度图动态更改地形拓扑。这也使您可以对照高度图图像进行检查,以检查飞机是否在地面以下飞行,这比对单个三角形进行相交检查要有效得多。

关于python - panda3d内存不足,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32995332/

10-11 04:01