Unity は、シーンをロードまたはアンロードする方法に応じて、ライトプローブのデータを異なる方法で更新します。
Unity は LightProbes C# オブジェクトを使用して、現在ロードされているすべてのシーンのライトプローブデータを保存します。LightProbes
オブジェクトには、4 面体テッセレーションと呼ばれる内部データ 構造体が含まれています。Unity は計算に 4 面体テッセレーションを使用して、ライトプローブがゲームオブジェクトをどのように照らすかを決定します。
シーンをロードまたはアンロードすると、Unity は自動的に LightProbes
オブジェクトを更新し、現在ロードされているすべてのシーンのすべてのライトプローブの位置と係数を加えます。ただし、Unity が 4 面体テッセレーションを更新するかどうかは、シーンのロード方法とアンロード方法によって異なります。
LoadSceneMode.Single を使用してシーンをロードすると、Unity はロードプロセスの一部として 4 面体テッセレーションを自動的に更新します。 LoadSceneMode.Additive を使用してシーンをロードする場合、または UnloadSceneAsync を使用してシーンをアンロードする場合、Unity は 4 面体テッセレーションを更新しません。
Unity が古い 4 面体テッセレーションを使用して計算を実行する場合、結果は新しくロードまたはアンロードされたライトプローブを考慮しません。つまり、ライトプローブはゲームオブジェクトを期待通りのライティングを与えず、LightProbes.CalculateInterpolatedLightAndOcclusionProbes() または LightProbes.GetInterpolatedProbe() を呼び出すと予期しない結果が返される場合があります。
4 面体テッセレーションを強制的に更新するには、LightProbes.Tetrahedralize または LightProbes.TetrahedralizeAsync() を呼び出します。これらの関数は、現在ロードされているすべてのシーンのすべてのライトプローブからのデータで 4 面体テッセレーションを更新します。
4 面体テッセレーションの更新は CPU に負荷がかかり、ライトプローブの数に応じて CPU への影響が増加します。複数のシーンをロード/アンロードしているときに、4 面体テッセレーションの更新によってパフォーマンスに影響が出る場合は、一定量のコンテンツをロード/アンロードするまで、または、CPU がアプリケーションのパフォーマンスに影響するとは考えられなくなる時点まで、更新を遅らせるほうが良い場合があります。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.