This is the documentation for Enlighten.
7.7b. プリコンピュート パイプライン
すぐに使用するには、Enlighten Pipeline ライブラリのプリコンピュート パイプライン API を使用して Enlighten プリコンピュートを実行します。
この API は、アーリーアクセス状態で提供されます。近い将来、API に変更がある可能性があります。使用には注意が必要です。
Enlighten Pipeline ライブラリは、使いやすく、信頼性が高いものとして設計されており、ビルド パイプラインまたは編集ツールの一部としての使用のみを意図しています。
API 契約の違反となるような誤った使用方法があった場合、API は例外を投げます。このような例外は、ユーザーの入力の問題ではなく、アプリケーションの欠陥を示します。アプリケーションで例外処理を有効にした場合、例外に対応して続行するか、単にクラッシュを報告してアプリケーションを終了するかを選ぶことができます。
制限
Enlighten Pipeline ライブラリは、64 ビット Windows アプリケーションでの使用のみがサポートされています。
最もよく使用される Enlighten の機能のみを使用できます。以下の機能は、現在サポートされていません。
同じ LOD レベルで 1 つ以上のメッシュ オブジェクトを含むジオメトリ オブジェクト
高度なプリコンピュート パラメーター
必要な機能またはオプションを使用できない場合は、Enlighten サポートにお問い合わせください。実装を拡張する場合に備え、Enlighten Pipeline ライブラリの完全なコードが提供されています。
API を誤って使用したり、サポートされていない方法で使用した場合、致命的なエラー メッセージ、PipelineError 例外、プリコンピュートの失敗が発生する恐れがあります。エラー メッセージまたはプリコンピュートのログ ファイルで、問題のデバッグに役立つ警告とエラーを確認してください。
使用方法
パイプライン実装のサンプルは、プリコンピュート パイプライン API の使用方法の基本的な例を提供します。
アプリケーションと Enlighten Pipeline ライブラリをリンクし、EnlightenPipeline/PrecomputePipeline.h を含めます。
最初に、PrecomputePipeline のインスタンスを作成し、コンストラクターに以下を入力します。
エクスポート パス: High Level Build Systemのシーンのエクスポート先。
ツール パス: High Level Build Systemツール バイナリの場所。
シーンを正しく表示するための Enlighten デバッグ ツールを有効にする PipelineWorldAxes。
Enlighten シーンを構築するには、PrecomputePipelineから得られる PipelineScene 関数を呼び出します。
PipelineScene::AddGeom を呼び出して各ジオメトリ オブジェクトを追加します。
PipelineScene::AddInstance を呼び出して各ラジオシティ インスタンスを追加します。
PipelineScene::AddInstanceParameters を呼び出して、ラジオシティ インスタンスの間接光の解像度を制御するパラメーター セットを追加します。
PipelineScene::AddProbeOctreeVolume を呼び出して、自動プローブ配置のためにプローブの領域を追加し、間接光の解像度を構成します。
PipelineScene::AddCubemap を呼び出して、各ローカル反射プローブにEnlighten キューブマップを追加します。
PipelineScene::AddRadiosityDependencies を呼び出して、ラジオシティ インスタンスのグループにラジオシティの依存関係を追加します。
Enlighten シーンをエクスポートして、プリコンピュートのプロセスを実行します。
PrecomputePipeline::WriteScene を呼び出して、Enlighten シーンをエクスポートします。インクリメンタル ビルドを有効にするため、前回のエクスポートから変わっていないファイルのタイムスタンプは更新しません。
PrecomputePipeline::StartPrecompute を呼び出して、プリコンピュートのプロセスを始動します。パラメタライズ オプションは、ライトマップ UV を生成するためプリコンピュートの最初の部分だけ実行します。
プリコンピュートを始動したスレッドをブロックしないようにするため、定期的に PrecomputePipeline::TryGetPrecomputeResult を呼び出して、プリコンピュートのプロセスが終了したかどうかを確認します。
PrecomputePipeline::CancelPrecompute を呼び出して、High Level Build Systemの親プロセスとすべての子プロセスを終了します。
PrecomputePipeline::WaitForPrecompute を呼び出して、プリコンピュートが終了するまで現在のスレッドをスリープ状態にします。
プリコンピュートで生成されたオブジェクトから、必要な永続ランタイム データ のみを抽出します。
ゾーン内で自動的に生成されたラジオシティ システムとプローブ セットを見つけるには、PrecomputePipeline::LoadGeneratedSystems と PrecomputePipeline::LoadOutputProbeOctree を呼び出します。
ライトマップ UV データを取得するには、PrecomputePipeline::LoadPackedSystem、PrecomputePipeline::LoadPackedGeometry を呼び出します。
永続ラジオシティ データを取得するには、PrecomputePipeline::LoadRadSystemCore、PrecomputePipeline::LoadInputWorkspace、PrecomputePipeline::LoadRadiosityNormalTexture、PrecomputePipeline::LoadPrecomputedVisibilityData、PrecomputePipeline::LoadOctreeProbeSetCore、PrecomputePipeline::LoadRadCubeMapCore を呼び出します。
マテリアル カラー データを取得するには、PrecomputePipeline::LoadClusterAlbedoWorkspaceMaterialData、PrecomputePipeline::LoadSystemDuster を呼び出します。