0

一連のアニメーションをフレームにレンダリングするスクリプトを 3ds max に設定しました。これを行うには、すべてのマテリアルを含むファイルを開き、アニメーションを (bip として) フィギュアにロードしてから、レンダリングします。

次のファイルを開くことができず、最終的にスクリプトが失敗するという問題が発生していました。max がすべてのシステム メモリを消費していました。もちろん、max を閉じるとメモリが解放され、スクリプトを続行できました。

自分のスクリプト内でメモリ リークが発生することを期待して、変数をチェックアウトしましたheapfree。自分自身の (maxscript) コード内でメモリ リークが発生することを期待していましたが、すべてのアニメーションの後、空き領域の量は同じでした。

次に、そのメモリをすべて消費しているのは 3ds max である必要があります。アニメーションからアニメーションに保存する必要のある max は何もありません。そのメモリを解放するために max を取得する方法はありますか? resetMaxFile()(シーン内のすべてのオブジェクトを手動で削除しようとしました)。max が制御不能になる既知の操作セットはありますか?

4

2 に答える 2

1

これをループの最後に追加しようとしましたか: gc()

ガベージ コレクションを実行し、スペースを解放します。しかし、ビップ部分が漏れていると思います。

于 2011-06-26T10:29:49.673 に答える
-1

質問の最初の行は、ローカルで作成されたプラグインをロードしていますか? 彼らはメモリをリークしている可能性がありますか?

私はバージョン 5 以降 3dsmax を使用していませんが、問題となる特定のメモリ リークは覚えていません。ただし、(他の人の経験から) バッチ操作では、物事を正常に保つために時々 MAX を再起動する必要があったことを思い出すようです。たとえば、バッチ ジョブを小さな作業セットに分割し、それらを順番に呼び出します。しかし、MAX5 で行っていたことには、そのような手間は必要ありませんでした。もちろんYMMV。;)

Autodesk には Autodesk Developer Network もあります。あなたの会社が 3DS の使用に真剣に取り組んでいるのであれば、これは大きなリソースであり、多額の現金ではありません。

于 2010-05-13T23:07:42.713 に答える