This is the documentation for Enlighten.
7.7b. プリコンピュート パイプライン
すぐに使用するには、Enlighten Pipeline ライブラリのプリコンピュート パイプライン API を使用して Enlighten プリコンピュートを実行します。
この API は、アーリーアクセス状態で提供されます。近い将来、API に変更がある可能性があります。使用には注意が必要です。
Enlighten Pipeline ライブラリは、使いやすく、信頼性が高いものとして設計されており、ビルド パイプラインまたは編集ツールの一部としての使用のみを意図しています。
API 契約の違反となるような誤った使用方法があった場合、API は例外を投げます。このような例外は、ユーザーの入力の問題ではなく、アプリケーションの欠陥を示します。アプリケーションで例外処理を有効にした場合、例外に対応して続行するか、単にクラッシュを報告してアプリケーションを終了するかを選ぶことができます。
制限
Enlighten Pipeline ライブラリは、64 ビット Windows アプリケーションでの使用のみがサポートされています。
最もよく使用される Enlighten の機能のみを使用できます。以下の機能は、現在サポートされていません。
- ベイクされたライティング
- 手動プローブ配置
- ライトマップ LOD
- 同じ LOD レベルで 1 つ以上のメッシュ オブジェクトを含むジオメトリ オブジェクト
- 高度なプリコンピュート パラメーター
必要な機能またはオプションを使用できない場合は、Enlighten サポートにお問い合わせください。実装を拡張する場合に備え、Enlighten Pipeline ライブラリの完全なコードが提供されています。
API を誤って使用したり、サポートされていない方法で使用した場合、致命的なエラー メッセージ、PipelineError 例外、プリコンピュートの失敗が発生する恐れがあります。エラー メッセージまたはプリコンピュートのログ ファイルで、問題のデバッグに役立つ警告とエラーを確認してください。
使用方法
パイプライン実装のサンプルは、プリコンピュート パイプライン API の使用方法の基本的な例を提供します。
アプリケーションと Enlighten Pipeline ライブラリをリンクし、EnlightenPipeline/PrecomputePipeline.h を含めます。
最初に、PrecomputePipeline のインスタンスを作成し、コンストラクターに以下を入力します。
- エクスポート パス: High Level Build Systemのシーンのエクスポート先。
- ツール パス: High Level Build Systemツール バイナリの場所。
- High Level Build Systemを制御するための PrecomputeParameters。
- シーンを正しく表示するための 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 を呼び出します。