バージョン 2.12 以降の Forge Viewer では、メッシュ結合とハードウェアのインスタンス化を使用して、モデル表示時のレンダリング処理時間を短縮する機能が追加されています。また、メッシュ結合で消費する GPU メモリ量は既定値で 100 MB ですが、この値をコントロールするオプションも用意されています。
メッシュ結合オプションを指定した場合には、表示する 3D モデル全体がメモリ上に展開される必要があります。「設定」画面で「プログレッシブ モデル表示」を指定している場合には、モデル全体がメモリ上にロードされるまで最適化がおこなわれないので注意してください。この最適化は、大規模な Navisworks モデルのように、モデル点数が多いことが原因でパフォーマンスが低下するようなモデルに効果的です。
次の例は、メッシュ結合を有効にして、試用する GPU メモリを 150 MB に設定して Viewer を初期化する例です。
var viewerApp;
var options = {
env: 'AutodeskProduction',
language: 'ja',
useConsolidation: true,
consolidationMemoryLimit: 150 * 1024 * 1024, // 150MB = 150byte * 2^20(Mega bytes)
... <中略> ...
};
var documentId = 'urn:' + defaultUrn;
Autodesk.Viewing.Initializer(options, function onInitialized(){
var avp = Autodesk.Viewing.Private;
avp.logger.setLevel( avp.LogLevels.Debug );
var config3d = {
extensions: ['Autodesk.Viewing.WebVR']
};
viewerApp = new Autodesk.Viewing.ViewingApplication('viewerDiv');
viewerApp.registerViewer(viewerApp.k3D, Autodesk.Viewing.Private.GuiViewer3D, config3d);
viewerApp.loadDocument(documentId, onDocumentLoadSuccess, onDocumentLoadFailure);
});
なお、メッシュ結合にはいくつかの制限がありますので、併せてご紹介しておきます。
- このオプションを指定した場合には、CPU と GPU の両者に追加メモリを必要とします。
- アニメーションや分解機能を使用した場合には、自動的にオプションは無効になります。
- ゴーストやテーマ設定などのフラグメント単位の変更は、現在のところ単純なフォールバックのみで行われます。特別なフラグメント単位のカスタマイズが適用されている場合は、通常の(最適化されていない)レンダリングが使用されます。
- このオプションの有効時には、透明度を含むシーンの粒状度が低下する場合があります。
通常の場合、あまり効果を体感することは難しいかもしれませんが、Autodesk.Viewing.WebVR Extension 使用時にも適用されるようなので、今後、有効に感じる場面があるかも知れません。
By Toshiaki Isezaki
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。