This is the documentation for Enlighten.

7.13. 技術的トラブルシューティング


このセクションでは、Enlighten を使用する際に直面する可能性があるいくつかの問題とその解決方法について説明します。

プリコンピュート

問題

理由/解決方法

全般

低レベル プリコンピュート API の使用時に問題が発生した場合は、GeoAttachSystemLogger/GeoAttachLogger 関数を呼び出してエラーおよび警告メッセージを発行します。その他の情報については、メッセージ報告およびエラー処理に関する API ドキュメントを参照してください。

時間がかかりすぎる

  • ラジオシティ計算に不必要なメッシュが含まれている、またはプローブを使ったほうが効率的にライティングできるライトマップ適用メッシュが存在している可能性があります。ラジオシティ プロパティをご覧ください。
  • 間接光の解像度が必要以上に高い。
  • ライトマップが適用された 1 つ以上のメッシュで、過剰な数のライトマップ ピクセルが求められている。可能であればプローブ ライティングまたは簡素化されたライトマップ UVを使用してライトマップ ピクセルの数を削減します。
  • シーンに過剰な数のクラスタを持つ 1 つ以上のシステムが含まれている。
  • ラジオシティの依存関係の数が過剰なシステムが 1 つ以上ある。

失敗してエラー メッセージが表示される

各エラー メッセージは、全般的な問題と影響を受けるシーンの一部を示します。原因が不明確な場合は、Enlighten サポートにお問い合わせください。

クラッシュ

Enlighten サポートにお問い合わせいただき、以下のファイルを提供してください。

  • HLBS を使用している場合、エクスポートされた Enlighten シーン (__Build_<scene>__ フォルダーを除く)
  • 低レベル API を使用している場合、IPrecompute オブジェクトにダンプ フォルダーを設定し、ファイル名に Input という語が含まれるすべてのファイルを送信します。
  • プリコンピュート フォルダーにあるすべての .dmp ファイル。

ランタイム

問題

理由/解決方法

全般

低レベル ランタイムの使用時に問題が発生した場合は、GeoAttachSystemLogger/GeoAttachLogger 関数を呼び出してエラーおよび警告メッセージを発行します。その他の情報については、メッセージ報告およびエラー処理に関する API ドキュメントを参照してください。

間接光がない

ランタイムにアルベド データが提供されていないか、アルベド データがすべて 0 である場合に発生します。これを防ぐには、アルベドを白に設定します。
また、ランタイムに光源が提供されていない場合にも発生します。これを防ぐには、白の環境キューブマップを指定します。

出力に予期しない明るい色がランダムに生じる

通常、破損したデータが導入され、それが Enlighten ランタイムによってレベル全体に伝播されることで発生します。単一の Enlighten 更新のみを実行すると、当初の問題を限定できる可能性があります。

  • Enlighten を実行する前に、すべてのバッファが適切に初期化 (クリア) されていることを確認してください。
  • プリコンピュートされたデータがすべて適切なサイズのバッファにロードされ、上書きされていないことを確認してください。
  • ライト パラメーターがすべて (無限の値、非数、近い/遠い平面での 0 などを含まず) 適切であることを確認してください。

間接ライティング更新のラグまたは飛び

バンディング

出力テクスチャに、滑らかなライティングのグラデーションをキャプチャするための十分な精度がない (あるいは、後のスクリーン スペース シェーダーの計算で精度が失われた)。

  • より高品質の出力テクスチャ形式 (たとえば 16 ビット浮動小数点) を使用します。
  • 圧縮された出力テクスチャ形式を使用する場合、Enlighten 出力スケールを下げ、低いライト レベルでの精度を上げます (また、最終シェーダーで補正スケール ファクターも追加します)。トレードオフとして、出力ライティングのダイナミック レンジが小さくなります。

大きなメモリ使用量

ラジオシティ プロパティ間接ライティング解像度が、最小コストになるよう設定されていることを確認してください。