0

我在 3ds max 中设置了一个脚本来将一堆动画渲染到帧中。为此,我打开一个包含所有材料的文件,将动画(作为 bip)加载到图形上,然后进行渲染。

我们看到了一个问题,最终脚本将失败,因为它无法打开下一个文件——max 已经消耗了所有的系统内存。当然,关闭 max 会释放内存,我们可以继续执行脚本。

我检查了heapfree变量,希望在我的脚本中看到内存泄漏,希望在我自己的(maxscript)代码中看到内存泄漏——但是每个动画之后的可用空间量都是相同的。

然后,它必须是消耗所有内存的 3ds max。max 中的任何内容都不需要从动画保存到动画——有什么方法可以让 max 释放内存吗?(我已经尝试resetMaxFile()手动删除场景中的所有对象)。是否有任何已知的操作集导致 max 失控?

4

2 回答 2

1

您是否尝试在循环末尾添加此内容:gc()

它会收集垃圾并释放一些空间。但是我怀疑 bip 部分有泄漏。

于 2011-06-26T10:29:49.673 回答
-1

第一行需要问的是,您是否加载了任何本地创建的插件?他们会泄漏内存吗?

我从第 5 版开始就没有使用过 3dsmax,但我不记得任何有问题的特定内存泄漏。但是,我似乎记得(根据其他人的经验)批处理操作需要不时重新启动 MAX 以保持事情正常。例如,将您的批处理作业分解为较小的工作集并按顺序调用它们。然而,我们在 MAX5 中所做的事情并不需要这些杂物。当然是 YMMV。;)

Autodesk 也有 Autodesk 开发者网络;如果您的公司认真对待 3DS 的使用,那么这是一个很好的资源,而且不会有太多现金。

于 2010-05-13T23:07:42.713 回答