This is the documentation for Enlighten.

9.1.2. HLBS によるビルド


GeoPrecompute は、依存関係によってつながる多数のビルド ターゲットからなるビルド システムです。この単純な構造は有向グラフを表しており、出力を作成するために各プリコンピュート ステップを順に実行する制御ロジックを可能にします。GeoPrecompMonitor は、内部で GeoPrecompute を実行する Enlighten のアプリケーションであり、ステップの実行を図で表現します。両アプリケーションは同じコマンド ライン引数を共有します。GeoPrecompMonitor をインタラクティブ アプリケーションとして、GeoPrecompute を自動化インターフェイスとして扱うことができます。

以下の 3 つの主要なトップ レベル ターゲットがあります。PrecomputeExtractSceneMeshConversion です。
 

プリコンピュートの実行方法に関する問題を診断するには、結果を GeoRadiosity でのプリコンピュートの実行の結果と比較します。

プリコンピュートの例

    GeoPrecompute.exe /t:Precompute /p:InputScene="<path>\ubox\ubox.scene"

プリコンピュート タスクは多数のサブターゲットを実行します。初めに .scene ファイルの内容を確認し、そこから最終的なランタイム データをビルドするために必要なすべてのステップを実行します。プリコンピュート ステージの完全な詳細情報については、プリコンピュート API に関するドキュメントを参照してください。各ステージで入力データが解析され、必要に応じて Iprecomp* オブジェクトに変換されます。タスクが進むと、HLBS 向けのシーンの定義で説明した構造を使用して、中間出力および最終出力ファイルが __Build_ubox__ フォルダーに作成されます。

インクリメンタル ビルド

GeoPrecompute は、要求された出力を生成する必要最低限の動作を実行しようとします。前回の実行からシーンの一部のみに変化があった場合 (最終変更タイムスタンプに基づく)、GeoPrecompute はそれらのファイルと依存関係を必要とする動作のみを繰り返します。

動作は含まれているファイルのタイムスタンプに依存するため、オプションでありかつ暗黙的に含まれているだけのファイル (XML 属性により明示的に参照されない .mats ファイルなど) は、削除されてもリビルドをトリガーしません。

まれに、インクリメンタル ビルドは、プリコンピュート プロセスが前回クラッシュした場合、またはビルド中に停止した場合に失敗することがあります。

完全なリビルドを強制するには、__Build_<scene>__ ディレクトリを削除するか、コマンドライン オプション /t:ForcePrecompute を GeoPrecompute または GeoPrecompMonitor に渡します。

コンソールとファイル ログ

GeoPrecompMonitor アプリケーションには、Log タブのテキストを判断する固定のコンソール ログ レベルがあります。GeoPrecompute アプリケーションには、制御可能なログ出力があります。両アプリケーションは後の検証とレポートのためにファイルへのログ記録が可能であり、必要であれば異なる詳細度を設定できます。これらのオプションは以下で設定します。

    GeoPrecompute.exe <other options> /v:<verbosity_level> /fl /flp:LogFile=<path_to_log_file>;Verbosity=<verbosity_level>

/v は、コンソールの詳細度を設定します。/fl は、ファイル ログを有効にし、ロガー プロパティは /flp で設定します。<Verbosity_level> の様々な値は以下のとおりです。

詳細度

短縮オプション

説明

Quiet

/v:q

低い詳細度であり、ビルド要約を表示します。

Minimal

/v:m

最小限の詳細度であり、エラーと警告を表示します

Normal

/v:n

標準の詳細度であり、エラー、警告、MessageImportance.High のメッセージ、一部のステータス イベントを表示します

Detailed

/v:d

高い詳細度であり、エラー、警告、MessageImportance.High または MessageImportance.Normal のメッセージ、すべてのステータス イベントを表示します

Diagnostic

/v:diag

診断的な詳細度であり、すべてのエラー、警告、メッセージ、ステータス イベント、内部専用のデバッグ データを表示します

コンソール I/O

デフォルトで、GeoPrecompute アプリケーションはインタラクティブなプロセスでエラーをより見やすくするために色付きの出力を使用し、単一のストリーム (stdout) のキャプチャが可能です。入力に使用されたストリームに応じてビルド パイプラインで出力とエラーを区別する場合、GeoPrecompute が簡単な TTY インターフェイスを使用するように設定できます。このオプションが設定された場合、情報を含むメッセージは stdout に出力され、エラーは stderr に出力されます。

    GeoPrecompute.exe <other options> /p:UseBasicTty=true

シーンの抽出

    GeoPrecompute.exe /t:ExtractScene /p:InputDumpFolder="<path_to_dump>"

インテグレーションで High Level Build System を使用している場合、いつでも GeoRadiosity にシーンをロードし、エクスポートが適切でプリコンピュートの結果が想定通りかどうかを確認できます。Low Level Precompute API を使用している場合、入ってくるデータをすべてダンプ フォルダーに保存し、その後、GeoRadiosity にそこから新しい .scene ファイルおよび関連ファイルを生成することを要求するように IPrecompute インターフェイスに指示すると、プリコンピュートおよびランタイム インテグレーションを確認できます。この新しい scene ファイルにプリコンピュートを実行して、すべてのプリコンピュート データが提供されたことを確認します。GeoRadiosity のデバッグ機能がすべてのランタイムまたは作成に関する問題の解決をサポートします。

メッシュ変換

GeoPrecompute.exe /t:MeshConversion /p:InputScene="<path>\ubox\ubox.scene"

このタスクは、シーンがロードされるとすぐに GeoRadiosity により実行されます。中間ファイル形式をアプリケーション向けのランタイム データに変換します。アセットがすでにランタイム形式になっているため、BasicRadiosity がこれを行う必要はありません。HLBS を独自のツール チェーンにインテグレートした場合、このステップは必要ありません。 

ライトマップ UV の生成

ライトマップ UV パイプラインのタスクは、MeshConversion または Precompute ビルド ターゲットを使用して実行されます。これらのタスクの出力は、以下のフォルダーに配置されます。

タスク

フォルダー

前提

Conversion

geomset_output/<geomName>/Parametised/<meshName>

プリコンピュートを実行する前にメッシュに変換が必要な場合。

Parameterisation

geomset_output/<geomName>/Parametised/<meshName>

タスクが無効な場合、ここに入力のコピーが格納されます。

Chart scaling

geomset_output/<geomName>/Processed/<meshName>

タスクが無効な場合、ここに入力のコピーが格納されます。

すべてのケースで プリコンピュート ターゲットの CreateInputGeometry ステージにより Processed ファイルが読み取られます。