Panda3D没有采用最新型号

时间:2012-11-30 07:49:21

标签: visual-studio-2010 panda3d

到目前为止,我对Panda3d输入模型感到非常沮丧。 Panda3d只会导入一次模型,永远不会再次更新(即使在更改.egg文件的名称后)

我首先将一个模型(我们称之为版本1)导入VS2010 panda3d。然后我在3dsMax中修改了模型并再次将其导出到egg中(版本2)。但是,无论我导入了多少次,panda3d都会顽固地使用版本1.重命名.egg也无济于事。我怀疑panda3d缓存系统正在缓存我之前的模型,并且有一些重要的东西将所有版本链接在一起,默认panda3d引擎回到版本1.

主要问题是,我如何解决panda3d没有采用最新型号的问题?谢谢。

1 个答案:

答案 0 :(得分:3)

如果你在Panda3D论坛上提出要求,我想你会更快地得到关于Panda3D的问题的答案。

但是为了回答您的具体问题,Panda确实合并了一个模型缓存,默认情况下会读取一次特定文件名(在会话期间),但在同一会话期间不会再次读取磁盘,即使文件发生更改(但是如果需要,你可以明确地要求它再次读取磁盘)。 Panda还有一个持久性磁盘缓存,默认情况下缓存模型在会话之间的加载,但在这种情况下,它总是在盲目返回先前模型之前检查文件的时间戳,如果文件更新,它将始终重新阅读并返回新版本。

如果您完全重命名该文件,它都不会返回缓存版本,因此在这种情况下必须继续其他内容。

禁用缓存的确切方式取决于您用于加载模型的特定调用。你引用VS2010,所以我推断你是用C ++编写的(但是使用VS2010代替VS2008并没有得到官方支持,所以你可能还有其他问题,除非你有很多方法可以正确使用VS2010)。

要避免特定模型的缓存,请尝试将标志中设置的LF_no_cache位的LoaderOptions对象传递给ModelPool :: load_model()(或者用于加载模型的接口)。