2012-11-30 31 views
0

到目前为止,我一直非常沮丧与模型的输入。 Panda3d将只导入一次模型,永远不会再次更新(即使更改了.egg文件的名称后)Panda3D没有采用最新的型号

我首先将模型(我们称之为版本1)导入到VS2010 panda3d中。然后我修改了3dsMax中的模型,并将它导出到蛋中(第2版)。不过,无论我输入多少次,panda3d都会固执地使用版本1.重命名.egg也无济于事。林怀疑panda3d缓存系统缓存我以前的模型,并有一些重要的链接所有版本在一起,默认panda3d引擎回到版本1.

主要问题是,我该如何解决这个问题的panda3d采取最新模式?谢谢。

+0

没有人能帮助我吗? – kassarin

回答

2

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

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

在任何情况下,如果您完全重命名文件,它将返回缓存版本,所以在这种情况下必须进行其他操作。

禁用缓存的确切方式取决于您用于加载模型的特定调用。你引用了VS2010,所以我推断你是用C++编写的(但是使用VS2010而不是VS2008并没有官方的支持,所以你可能还会遇到其他问题,除非你正确地使用VS2010)。尝试将标志中设置的LF_no_cache位的LoaderOptions对象传递给ModelPool :: load_model()(或者您正在使用的用于加载模型的接口),以避免特定模型的高速缓存。

+0

您好,即时通讯在VS2010上使用Python for Panda3D。你介意重新输入Python吗?非常感谢! – kassarin

+0

并感谢十亿读我的问题。我有一个实用的考试即将到来,如果这在测试过程中发生,我可能会拧。 – kassarin