このトピックでは、作品の見栄えをよくし、表示と移動をできるだけ速くするためのヒントを紹介します。
小さなテクスチャ マップを使用します。それらの使用は控えめにします。パフォーマンスを向上させるには、オブジェクトのポリゴン数を少なくします。最大 5,000 から 10,000 のポリゴンを使用した完全なシーンは、ほとんどのコンピュータで操作可能です。[詳細レベル](Level of Detail)ヘルパーによってそのシーン内のオブジェクトのポリゴン数を処理できます。3ds Max の[最適化](Optimize)モディファイヤを使用して、オブジェクトを VRML97 に書き出す前にそれらを単純化することもできます。
可能なかぎりプリミティブを使用します。たとえば、球を 1 個だけ含むシーンを書き出すと、VRML97 ファイルのサイズはおよそ 400 バイトになります。 しかし、その球に[メッシュを編集](edit mesh)モディファイヤを適用して球の上の頂点を 1 個移動させると、その VRML97 ファイルはおよそ 7,400 バイトになります。
[統計を表示](Show Statistics)を使用してシーン内の面数を確認します。標準的な HTML のページから VRML97 .wrl ファイルを呼び出してください。次に、embed(埋め込み)コマンドを使ってビューワをスクリーン上の限定されたウィンドウ領域に制限します。これによって、フレームごとにレンダリングしなければならないピクセル数を減らすことができ、VRML97 環境の反応を良くします。多くのユーザは 800 X 600 以上の高解像度を使用しているので、レンダリングと移動中のピクセル数が大きくなり、ビデオ表示の速度が落ちることがあります。ブラウザがリアルタイムなレンダリングとナビゲーションを維持しようとするため、コマ落ちが発生し、シーンは途切れ途切れな状態になります。<embed SRC=myworld.wrl WIDTH=300 HEIGHT=200> のような embed (埋め込み)コマンドを使用します。
3ds Max のオブジェクトの面を非表示にしてから、そのオブジェクトを書き出します。表示されない面は、オブジェクト上で穴のように見えます。VRML97 プラグインは非表示オブジェクトを書き出すことはできますが、非表示の面は書き出しません。シーンの中では見られることがないとわかっている面を非表示にしてください。 たとえば、オブジェクトの背面やサーフェスに接したオブジェクトの底面です。
インスタンスを使って、同じジオメトリを持つオブジェクトのファイル サイズを減らしてください。
[ミラー](Mirror)変換を使用する場合は、必ずその直後に[変換をリセット](Reset Transform)ユーティリティを使用してください。[法線](Normal)モディファイヤを使用した直後に[法線を統一](Unify Normals)を使用することもできます。VRML97 では負のスケールとなる[ミラー](mirror)変換を使用できません。[変換をリセット](Reset Transform)ユーティリティは実際のメッシュ オブジェクトでデータを修正して、ミラー効果を作成します。
VRML97 のモデリングを行う際に単位を変更しないでください。メートル単位でモデリングするには、既定値の単位設定を変更せずに、1 ワールド単位を 1 メートルとして使用してください。
変換アニメーションおよび座標補間付きアニメーションを使用すると、ファイルのサイズは大きくなります。 VRML97 プラグインは、変換アニメーション(移動、回転、スケール)と、座標補間付きアニメーションを書き出します。たとえば、[テーパ](Taper)や[ベンド](Bend)などのモディファイヤをアニメートすることができるので、球の半径を大きくしたり、小さくしたりするなど、パラメータの変更をアニメートできます。
[リンクの継承](Inherit Links)機能を使用してシーンを VRML97 に書き出す場合、子オブジェクトは常に親オブジェクトの変換を継承します。[インバース キネマティック](Inverse kinematics)は VRML97 に正しく書き出します。ただし、[リンク継承](Inherit Links)機能は例外で、子オブジェクトが親オブジェクトの変換を継承するかどうかを決定します。
VRBL アニメーションには必ず TCB コントローラを使用してください。これらのコントローラは、精密なコントロールを提供し、可能なかぎりサイズの小さなファイルを生成します。既定値のベジェ コントローラのような他の種類のコントローラはそれほど十分に機能しない、もっと大きなサイズの VRML97 ファイルを作成します。
アニメーションではアニメーションフレーム内で面や頂点数を変更できません。VRML97 は、何回も面や頂点を追加したり、削除したりできません。[座標補間](CoordinateInterpolators)は、メッシュのモーフだけをサポートします。 頂点や面の数を変更することはできません。
3ds Max がリンクする階層のトップレベルにあるオブジェクト上にないアニメーションをトリガするには、[タイム センサー](TimeSensor)ヘルパー オブジェクトを使用してください。[タイム センサー]を使用せずに、[タッチ センサー]または[プロキシ センサー]から直接にアニメーションをトリガーした場合は、トップ レベルのオブジェクトだけをアニメートできます。[タイム センサー](TimeSensors)からアニメートすると、この制限がありません。
(球の半径と同様に)プリミティブのパラメータをアニメートし、アニメーションを座標の補間を使って書き出したい場合は、[書き出し](Export)ダイアログ ボックスの[プリミティブ](Primitives)の生成切り替えのチェック マークを消してください。これは、ボックス、球、円柱、円錐のプリミティブにのみ適用されます。
標準マテリアルとマルチ/サブオブジェクト マテリアルだけを書き出すことができます。 また、マテリアルのコンポーネントでは以下のものだけを書き出すことができます。
マップには JPEG 形式か PNG 形式を使ってください。それらはすべての VRML97 対応ブラウザで認識でき、一般的には最も小さいサイズのファイルを作成するからです(古いブラウザのなかには、GIF 形式は認識しても、PNG 形式を認識しないものがあります)。マルチ/サブオブジェクトはカラーとテクスチャを書き出します。テクスチャ付きのマルチ/サブオブジェクト マテリアルを持つオブジェクトの場合、そのオブジェクトは VRML97 に別々のオブジェクトを書き出します。 VRML97 はオブジェクト 1 個につき複数のテクスチャをサポートしていないからです。テクスチャ マップはブラウザを遅くさせ、ダウンロード時間を増加させます。なるべく使用しないでください。
すべての大きくて平らなサーフェスには十分な頂点があり、すべての合理的なバンテージ ポイントからいくつかの頂点を見ることができることを確認してください。一部のブラウザでは、オブジェクトの頂点すべてが現在のビューポートの外側にある場合に、そのオブジェクト上にテクスチャを表示することができません。
シーンにライトがいくつかある場合、シーンのすべてのライトの既定値の強度値を小さくしてください。ライトはシーンを過飽和し、すべてのジオメトリが白飛びしてしまう可能性があります。VRML97 に書き出されるシーンには常に少なくとも 1 個のカメラと 1 個のライトを追加してください。
VRML ヘルパーを、トップ ビューポートのシーンに挿入します。VRML ヘルパー オブジェクトはすべてのビューに挿入できますが、トップ ビューポートに挿入すると、正面のビューポートで正しい方向に表示されます。