在关注如何将panda3d与python一起使用的this教程并编写一个简单的3d街机飞行游戏时,我在运行第5版加载某些2d GUI图像的代码时遇到错误。控制台中的错误报告说:
内存不足分配4016字节
处理完成,退出代码为134
经过大量的谷歌搜索,我仍然无法分辨为什么会发生这种情况。 GUI元素只有几千字节,加载大文件的方式没有任何问题。
我在lubuntu上使用panda3d v1.9和python 2.7(安装了4gb RAM)。
任何帮助都是非常明确的。
可以找到包含图片的完整源代码here
答案 0 :(得分:2)
虽然非常慢,但确实适合我。稍微调整一下,看起来你的world.bam文件需要很长时间才能加载,因为它有很多顶点(数百万,似乎)和数千个单独的网格,因此结构相当低效。
即使对.bam文件进行非常粗略的预处理以减少绘制调用计数(通过加载它,调用flattenStrong(),然后再将其写出)会导致加载和渲染时间显着减少。然而,即便如此,它仍然存在问题,因为该程序现在正在测试每帧中每个三角形的碰撞。
在像这样的飞行模拟器游戏中,更典型的是使用地形引擎和/或着色器基于高度图动态地改变地形拓扑。这也允许您测试高度图图像以检查飞机是否在地面下飞行,这比对单个三角形进行交叉检查要有效得多。