2

在按照教程学习如何将 panda3d 与 python 一起使用并编写简单的 3d 街机飞行游戏时,我在运行第 5 期加载一些 2d GUI 图像的代码时遇到错误。控制台中的错误报告说:

分配 4016 字节的内存不足

进程以退出代码 134 结束

经过相当多的谷歌搜索,我仍然无法解释为什么会发生这种情况。GUI 元素只有几千字节,加载较大文件的方式没有任何问题。

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

任何帮助都非常受欢迎。

可以在此处找到带有图像的完整源代码

4

1 回答 1

2

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

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

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

于 2015-10-10T13:43:26.990 回答