DawnObject の使い方
点群を表示するためのオブジェクトである DawnObject の使い方について説明します。
DawnRenderer のインストールや環境の構築が済んでいない場合、DawnRenderer の導入方法に従ってセットアップしてください。
プロパティの設定
DawnObject のインスペクターのプロパティうち、主要なプロパティの使い方を説明します。また、一部を除き、これらののプロパティはインスペクター上だけでなく、C# のスクリプトからも使用できます。
Source, Source Type
Source プロパティに dawn ファイル (拡張子 .dawn) のパスや URL を設定します。Source Type プロパティの値によって、Source に設定された値の意味は変わります。
(この2つのプロパティは C# スクリプトからは動的には設定できません。C# スクリプトから動的に dawn ファイルを指定する場合は DawnObject.Load メソッドを使用してください。)
| Source Type | Source | Source の例 |
| Streaming Assets | Unity の StreamingAssets フォルダ内の相対パス | mydata/example/room.dawn |
| Local File Path | 絶対パス | D:\\work\mydata\room.dawn |
| Url | http または https の URL | https://example.com/data/room.dawn |
| Persistent Data | Unity の PersistentData フォルダ内の相対パス | mydata/example/room.dawn |
Point Budget
DawnRenderer では、ファイルに含まれる点群を全て描画するわけではなく、見えている範囲だけを適切な密度で描画するように設計されています。Point Budget は、この DawnObject が表示されたときに、画面上に何点描画するかを設定します。
多くの点を描画すると見た目がきれいになりますが、負荷が高くなり FPS が低下することがあります。実行するマシンの性能に合わせて調整できます。
最大は800万点です。また、値が小さすぎる場合 (100万点以下など) では見た目が破綻したり、点群が適切に描画がされない場合があります。
Min Point Size, Point Size Coeff
Min Point Size は点の最小サイズ (単位: m) です。カメラから近距離で点群の見た目が透けてスカスカになってしまうのを調整します。通常、0~0.1程度が望ましいです。
Point Size Coeff は点の大きさのスケールです。例えば値を2に設定すると、点の描画サイズが初期状態の2倍になります。カメラから中距離~遠距離で点群の見た目が透けてスカスカになってしまうのを調整します。通常、0.5~2.0程度が望ましいです。
Use Dither
ディザ抜きによって点の円形の周辺部をぼかした見た目にします。
Target Camera
DawnRenderer ではカメラから見えている範囲の点群だけを効率的に描画するため、描画にどのカメラを使用するかを Target Camera に設定します。未設定の場合はシーン内にある MainCamera タグのついているカメラを自動で使用するため、一般的な構成のシーンでは設定する必要はありません。
描画品質とパフォーマンスを調整する
DawnRenderer では、実行するマシンの性能に合わせて描画品質と実行パフォーマンスを調整できます。
きれいに見える描画パラメーターの調整方法
DawnRenderer でなるべく綺麗に点群が見えるように Point Budget, Min Point Size, Point Size Coeff の3つのパラメーターを調整することを推奨します。
以下の順序で調整してください。
- 描画点数 (
Point Budget)
重くならない程度に、可能な限り上げます。(上限800万点)
- 点の最小サイズ (
Min Point Size)
近距離の点群が透けないようにする効果があります。 まっすぐな床や壁など、点の密度が安定していそうな場所にカメラを寄せます。 その点群を近距離で映した状態で、近距離の点が透けないぐらいまで最小サイズを大きくします。通常、0~0.1程度が望ましいです。大きくしすぎると描画負荷が上昇してFPSが低下する可能性があります。
- 点のスケール (
Point Size Coeff)
中距離~遠距離の点群が透けないようにする効果があります。 カメラを点群から中距離~遠距離まで離した状態で、点群の隙間の透けがなくなる程度にスケールを大きくします。通常、0.5~2.0程度が望ましいです。 大きくしすぎると描画負荷が上昇してFPSが低下する可能性があります。
軽量描画モードを使用する
DawnSystem の設定を変更することで、描画品質をある程度犠牲にして実行パフォーマンスを上げる軽量描画モードが使用できます。軽量描画は、スマートフォンなどの画面ピクセル密度の高い端末で使うことを想定していますが、それ以外のマシンでも使用可能です。
軽量描画は、DanwSystem の Resolution Scale と Cache Frame Count の2つのプロパティを変更することで使用できます。
通常描画では Resolution Scale: 1, Cache Frame Count: 1 となっています。これ以外の値を設定すると軽量描画となります。
Resolution Scale
描画する解像度を設定します。画面のピクセル解像度を1として、どの程度解像度を粗くするかを設定できます。例えば0.5の場合、画面の縦と横がそれぞれ半分の解像度として描画されます。
0.1~1が設定可能です。
Cache Frame Count
描画する点群を1フレームで描画せず複数フレームに分けて描画することで、1フレーム当たりの描画負荷を下げる設定です。例えば6に設定した場合、DawnObject の描画点数が600万点なら1フレームに100万点だけ描画し、残りの500万点は直近の5フレーム分の描画結果のキャッシュ画像を再利用して描画します。
1~6が設定可能ですが、2~5では効果が薄いため、軽量描画を使用する場合は6に設定することを推奨します。
スマートフォンでの推奨の軽量描画の設定
PC 比べて GPU の性能が劣るスマートフォンでは、通常描画では FPS が低下することが懸念されます。
スマートフォンでは Resolution Scale: 0.5, Cache Frame Count: 6 を推奨します。スマートフォンの DPI は PC のディスプレイと比較して高いため、解像度を半分程度に落としてもあまり粗さが目立ちません。