在遵循有关如何在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/