インタフェース: IBitmapPager

IBitmapPager コア インタフェースは、3ds Max 2010導入され、自動制限モードをサポートするよう拡張されたビットマップ ページャに関連する設定を公開しています。

ビットマップ ページャの UI は、[カスタマイズ](Customize) > [基本設定](Preferences) > [レンダリング](Render)タブからは完全に削除され、MAXScript でのみコントロールできるようになりました。

インタフェース > コア インタフェース > IBitmapPager

 

   

コア インタフェース - クイック ナビゲーション

警告:

ビットマップ ページャは、特に非常に大きな出力イメージ サイズ(4K 以上)にレンダリングする際に、メモリ不足の問題の発生を最小限に抑えることでシステムの安定性を向上させるために、レンダラーの メモリ フットプリントを削減します

ただし、ページャは、ディスクにメモリをスワップすることにより機能しているため、パフォーマンスが低下します。

メモリのフットプリントに問題がない場合、たとえば 64 ビット OS で 64 ビット版の 3ds Max を実行している場合などでは、次の MAXScript 呼び出しを使用して ページャを無効にするとレンダリングのパフォーマンスが向上する可能性があります。

IBitmapPager.enabled = false 

この値は、シーンを再ロードするまで 有効になりません

この値の変更は表面的にはいつでも可能で、値の書き込みはファイルの保存時に行われます。ただし、ディスクのページングはシーンのロード時以外には有効または無効になることはありません。ただし、ディスクのページングはシーンのロード時以外に有効または無効になることはありません。このため、この値の変更は、シーンを保存してから再ロードしない限り、有効にはなりません

プロパティ:

IBitmapPager.enabled : boolean : Read|Write   

true に設定すると、ビットマップ ページャが有効になります。

false に設定すると、ビットマップ ページャが無効になります。

既定値は true です。

詳細については、上の警告を参照してください。

   

IBitmapPager.pageFilePath : filename : Read|Write 

ページ ファイルのパスを取得/設定します。既定値は、[カスタマイズ](Customize) > [システム パスを設定](Configure System Paths) > [ページ ファイル](Page File)エントリで指定された、 getDir #pagefile で返されるページ ファイル パスです。

   

IBitmapPager.memoryPadding_percent : float : Read|Write|Validated by Range: 0.0 to 1.0 

メモリ パディングの割合を、0.0 ~ 1.0 の範囲の値として取得/設定します。これは使用可能なメモリの割合(百分率)です。既定値は 0.2 (20%) です。

   

IBitmapPager.memoryLimit_percent : float : Read|Write|Validated by Range: 0.0 to 1.0 

メモリ上限の割合を 0.0 ~ 1.0 の範囲の値として取得/設定します。これはパディングされたメモリの割合(百分率)です。既定値は 0.1 です。

   

IBitmapPager.memoryLimitAutoMode : boolean : Read|Write 

true に設定すると、下で説明するヒューリスティックな方法によりメモリの上限が自動的に計算されます。既定値は true です。

   

IBitmapPager.memoryLimit_megabytes : integer : Read 

メモリ上限をメガバイト単位で取得します。

   

IBitmapPager.memoryUsedForPager_megabytes : integer : Read 

ページャが使用するメモリをメガバイト単位で取得します。

   

IBitmapPager.memoryTotalForPager_megabytes : integer : Read 

ページャの合計メモリをメガバイト単位で取得します。

   

IBitmapPager.memoryPadding_megabytes : integer : Read 

パディング メモリをメガバイト単位で取得します。

   

IBitmapPager.memoryAvailablePadded_megabytes : integer : Read 

使用可能なパディングされたメモリをメガバイト単位で取得します。

 

自動モード ヒューリスティック - ビットマップ ページャ:

自動モード ヒューリスティック - mental ray:

MAXScript のレンダリングおよびビットマップ ページャの改良

3ds Max 2011 より前のリリースでは、MAXScript で複数の render() 呼び出しが実行されると、前回のレンダリング結果がメモリに残り、自動的にリリースされませんでした。それらを消すためには、ユーザは手動ガベージ コレクションを呼び出さなくてはなりませんでした。このためメモリおよびディスクの領域がビットマップ ページャのために無駄に使われてしまっていました。

この問題は、3ds Max 2011 では定期的なガベージ コレクションをレンダリング後に自動的に実行することで修正されました。

MAXScript を介してレンダリングを実行した場合、システムはビットマップによるメモリの使用量の増加を計測するようになりました。システムはこの値を 1 つのレンダリングからその次まで合計し、その合計が一定のしきい値を超えた場合に必ずはガベージ コレクションを実行します。現在、しきい値は[カスタマイズ](Customize)メニュー > [基本設定](Preferences)ダイアログ ボックス > [MAXScript]タブで設定される MAXScript Heap サイズです。そのため、ガベージ コレクションは複数のレンダリング()呼び出しに従って実行されます。その際に要求される呼び出しの数はレンダリングのサイズによって異なり、レンダリングが大きくなるとガベージ コレクションをトリガする頻度が上がります。

ガベージ コレクションは前のレンダリング()呼び出しによって割り当てられたいかなるメモリおよびディスク スペースを、それらの呼び出しの結果が変数.に保存されていない限り、解放します。たとえば、myImage=render() を呼び出すと、レンダリングされたイメージは変数 myImage によって保持され、異なる値が myImage に割り当てられるまで収集されない、ということになります。このため、MAXScript ユーザは、大きなイメージについては後でそのイメージが必要にならない限り、変数に割り当てたままにしておかないように注意を払う必要があります。変数に割り当てられたイメージを解除するには、たとえば myImage=undefined 変数を未定義の状態に設定します。

それでもディスク領域を使い果たしてしまう可能性があります。ディスクがフルの場合、新規のハンドリングはガベージ コレクションを実行することが必ずしも必要ではないため、レンダリングが失敗する可能性があります。新規のハンドリングは、MAXScript のレンダリングによって消費されるディスク領域の量に下限境界を設けることで、その可能性を低減します。