リフレクションプローブは、インスペクターの Type プロパティー(詳細については、リフレクションプローブ ページを参照してください。)で選択されたように、3つの基本的なタイプがあります。
その3つのタイプを、以下に詳細に説明します。
Baked リフレクションプローブは、そのリフレクションキューブマップが Unity のエディターでキャプチャーされ、プレイヤーの後続の使用のために保存されているものです(詳細は、リフレクションプローブを参照してください)。キャプチャプロセスが完了すると、リフレクションが “frozen” されるので、baked プローブは、移動しているオブジェクトに起因するシーンの変化を実行時に反応することができません。しかし、(変化に反応すると) Realtime プローブよりもはるかに低い処理オーバーヘッドがついてきます。多くの目的のために許容できます。たとえば、一つの移動する反射するオブジェクトだけがある場合、それは静的な環境を反映しなければならないだけです。
Baked プローブとして動作させるために、プローブの Type プロパティーを Baked または Custom に設定する必要があります(カスタムプローブによって提供される付加的な機能については以下を参照してください)。
Baked プローブによってキャプチャーされたリフレクションは、Reflection Probe Static としてマークされたシーンオブジェクトを含むことができるだけです(すべてのオブジェクトのインスペクターパネルの左上にある Static メニューを使用) 。さらに、Culling Mask と Clipping Planes プロパティーを使って、リフレクションキューブマップに含まれるオブジェクトを絞り込むことができます(プローブは、基本的に6つのキューブマップ面のそれぞれを表示するために回転させるカメラのようなものです)。
ライティングウィンドウから Auto オプションがオンとなったとき、シーンにオブジェクトを置くとベイクしたリフレクションが自動的に更新します。連続ベーキングを利用していない場合、プローブを更新するためにリフレクションプローブインスペクターの Bake ボタンをクリックする必要があります(ライティングウィンドウの Build ボタンも、更新するためのプローブをトリガします)。
自動または手動のベイクを使うかどうかにかかわらず、エディターで作業を続ける間、ベイク処理は非同期に行われます。ただし、静的オブジェクトを移動したり、それらのマテリアルを変更したり、あるいは、他の方法でその外観を変更すると、ベイク処理が再開されます。
デフォルトでは、カスタムプローブは、ベイクしたプローブと同じように動作しますが、これらにはまた、動作を変更する追加のオプションがあります。
カスタムプローブのインスペクター上の Dynamic Objects プロパティーで、Reflection Probe Static としてマークされていないオブジェクトは、リフレクションキューブマップに含めることができるようになります。しかし、ベイクしている際、リフレクションにおいて、これらのオブジェクトのポジションが、まだ、“frozen” であることに注意してください。
Cubemap プロパティーを使用すると、プローブに独自のキューブマップを割り当てることができます。したがって、そのビューポイントから “見る” ことができるものとそれは完全に独立しています。リフレクションのためのソースとして、3D モデリングアプリケーションから生成されたスカイボックスやキューブマップを設定し、これを使用することができます。
Baked プローブはさまざまな場面で有用であり、優れた実行時のパフォーマンスを持っていますが、それらは、プレイヤー内のライブを更新しないという欠点があります。これは、オブジェクトは、そのリフレクションは彼らと一緒に移動することなく、シーン内を移動できることを意味します。これがあまりに制限的である場合、Realtime プローブを使うことができます。そして、それは実行時にリフレクションキューブマップを更新します。このエフェクトは、かなり大きな処理のオーバーヘッドになりますが、よりリアリズムを提供します。
実行時に更新するために、プローブを有効にするには、リフレクションプローブ インスペクターで Realtime への Type プロパティーを設定する必要があります。(Baked プローブと同じように)そのリフレクションをキャプチャーするために Reflection Probe Static としてオブジェクトをマークする必要はありません。ただし、カメラ の場合と同じ方法で動作する Culling Mask と Clipping Planes プロパティーを使用し、リフレクションキューブマップからオブジェクトを選択的に除外することができます。キューブマップからオブジェクトを選択的に除外することができます(プローブは、基本的に6キューブマップ面のそれぞれを見るために回転させるカメラのようなものです)。
エディターにおいて、Realtime プローブは、Baked プローブと多くの同じワークフローを持ちますが、彼らはより迅速にレンダリングする傾向があります。ライティングウィンドウから Auto オプションがオンにしたとき、シーンにオブジェクトを置くとリフレクションが自動的に更新されます。自動化を有効にしていない場合、プローブを更新するためにリフレクションプローブインスペクターの Bake ボタンをクリックする必要があります(ライティングウィンドウの Build ボタンも、更新するためにプローブをトリガします)。
自動または手動のベイクを使うかどうかにかかわらず、エディターで作業を続ける間、ベイク処理は非同期に行われます。ただし、静的オブジェクトを移動したり、それらのマテリアルを変更したり、あるいは、他の方法でその外観を変更すると、ベイク処理が再開されます。
Note: 現在、Realtime プローブは、Reflection Probe Static オブジェクトを移動したときにシーンビューで彼らのリフレクションを更新するだけ、または、外観を変更するだけです。これは、移動するダイナミックオブジェクトは、これらのオブジェクトがリフレクションに表示されていても、更新が発生しないことを意味します。ダイナミックオブジェクトが変更されたときのリフレクションを更新するために ライティングウィンドウ 上にポップアップする Build ボタンから Bake Reflection Probes オプションを選ばなければなりません。