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