2022.1 では、光源の個別ベイク処理、[ベイク処理のレンダリング オプション]デバッグ モード、シャドウ マテリアルにベイク処理されたライトを表示するオプション、ベース テクスチャと個別テクスチャをロードするオプション、およびベース イルミネーション ライトマップと個別イルミネーション ライトマップをプレビューするオプションが追加されました。また、シャドウ ベイク処理用の頂点とテクスチャを保存する新しい BakePresets
ファイルが追加されました。
2022.1 より前のバージョンでは、ライトをベイク処理する際に[ライトとシャドウ]を使用していましたが、この操作を行うと、イルミネーション全体(シャドウとイルミネーション)がライトマップにベイク処理されました。これにより、環境からのライト(ベース イルミネーション)が追加されるため、環境の切り替えや露出の変更を実行することはできませんでした。これらは、このライトマップにベイク処理されていました。
2022.1 に新しいアプローチが導入され、光源、ジオメトリの光源、シャドウを個別にベイク処理するよう柔軟に設定できるようになりました。後で環境の切り替えや露出の変更を行って、アンビエント オクルージョンを設定することができます。これで、HDR からのライティングを IBL でリアルタイムに取得し、分離されている光源を指定できるようになりました。
ライト エディタの[ライトの設定]タブの[プロパティ]セクション、およびマテリアル エディタの[白熱光]セクションに、[個別イルミネーションとしてベイク処理]が追加されました。このオプションを使用して、分離する必要がある光源を定義します。個々の光源またはジオメトリ光源の白熱光マテリアルのために、ベイク処理されたライティングからアンビエント オクルージョンまたはシャドウを分離することができます。[個別イルミネーションを有効化]と一緒に使用して、ライトマップを計算します。
[個別イルミネーションとしてベイク処理]を使用すると、ドア パネルの周囲光などのライトが個別のライトマップにベイク処理されるため、このライトに影響を与えずに環境の切り替え、回転、変更または露出の変更を行うことができます。スクリプトを使用して、ベイク処理された個別のライトマップの強度を変更し、ドア パネルの周囲光のオン/オフを切り替えるか、カラーをリアルタイムで変更します。
[個別イルミネーションを有効化]を有効にした状態で、ライトとシャドウの直接光でのみ使用できます 。
[ライトとシャドウをベイク処理]モジュールの[間接光]セクションに、[個別イルミネーション専用]が追加されました。このオプションは、個別のイルミネーションにのみ間接光を提供し、ベイク処理からベース イルミネーションを除外して、シーンを明るくします。明るくする必要がない場合は、このオプションを無効にします。
[ライトとシャドウをベイク処理]モジュールに、[個別イルミネーションを有効化]が追加されました。VRED は指定された光源からのライトを個別のライトマップにベイク処理します。ユーザは特定のライティング設定や環境からの多数の間接光をベイク処理して、シーンを明るくすることができるほかに、後でオンとオフを切り替えられる分離されたライトを追加することができます。
たとえば、白熱光マテリアルが割り当てられているジオメトリを使用して、自動車の中に周囲光を作成します。マテリアルを選択した状態で、マテリアル エディタの[白熱光]セクションで[個別イルミネーションとしてベイク処理]を有効にします。[ライトとシャドウをベイク処理]モジュールで、[シャドウをベイク処理]と[個別イルミネーションを有効化]を選択し、ライトとシャドウを生成してベイク処理します。
ライトマップを[詳細]タブにロードし、新しい[ベース テクスチャ]オプションと[個別のテクスチャ]オプションを使用してこれらのテクスチャを個別にロードします。ベイク処理されたテクスチャのライトマップをプレビューするには、新しいタブである[ベース イルミネーション]と[個別イルミネーション]を選択します。
[可視化]メニューに追加された [ベイク処理のレンダリング オプション]デバッグ モードを使用して、3D レンダリング中に表示されるベイク処理されたライトの種類を選択し、表示内容を確認します。ベイク処理されたライトのオン/オフの切り替えをシミュレートします。実行時に環境が与える影響と、[露出]などの環境マテリアル コントロールによってシーンのイルミネーションが変化する様子を確認します。
[計算済みのイルミネーションのレンダリング]モードで次のオプションが有効になっている場合は、シーン内のすべてのイルミネーションが表示されます。
[シャドウ]: シャドウがベイク処理されたライトマップを表示します。
(2022.1 で作成されたものではない)古いシーンでは、シャドウ マテリアルにベイク処理されたライトは表示されません。
[個別イルミネーション]: [個別イルミネーションを有効化]と[個別イルミネーションとしてベイク処理]を使用して、個別にベイク処理されたすべてのオブジェクトからのイルミネーションを表示します。これを無効にすると、環境からのベース イルミネーション マップとジオメトリからの一部の間接光が表示されます。
[個別イルミネーションのオプション]: [ベイク処理のレンダリング オプション]ダイアログ ボックスが開き、すべての個別ライトマップの強度とカラーの変更や、OpenGL のテクスチャ圧縮のオン/オフの切り替えを行うコントロールが表示されます。
[強度]: すべての個別ライトマップの強度を変更するコントロール。ライトのオン/オフまたは明るさの調整に使用します。スクリプトを使用してバリアント セットを作成できます。
[カラー]: すべての個別ライトマップのカラーを変更するコントロール。ライトにカラーを乗算してカラーを変更する場合に使用します。スクリプトを使用してバリアント セットを作成できます。
[GPU テクスチャ圧縮(OpenGL)]: OpenGL レンダリングの場合に個別のイルミネーション ライトマップに使用します。
圧縮の有効化は、テクスチャをアップロードするときにグラフィックス カード ドライバによって実行時に行われます。既定でオンになっています。OpenGL レンダリング時に圧縮のアーティファクトが表示される場合は、オフに切り替えます。
[可視化] > [計算済みのイルミネーションのレンダリング]を選択して未処理のテクスチャ データを表示すると、アーティファクトが目立つようになりますが、ライト マップ データと他のリアルタイム ライト(環境からのライトなど)の組み合わせ方法によっては、[リアリスティック レンダリング]でアーティファクトが目立たなくなる場合があります。
Python ユーザは、次のスクリプトを試してください。setLightmapGPUTextureCompression(on)
次に、バリアント セットで使用するスクリプトを示します。
コントロールを有効にする場合:
setBakeRenderOptions(VR_BAKED_BASE_ILLUMINATION, True)
setBakeRenderOptions(VR_BAKED_SEPARATE_ILLUMINATION, True)
setBakeRenderOptions(VR_BAKED_SHADOWS, True)
コントロールを無効にする場合:
setBakeRenderOptions(VR_BAKED_BASE_ILLUMINATION,False)
setBakeRenderOptions(VR_BAKED_SEPARATE_ILLUMINATION,False)
setBakeRenderOptions(VR_BAKED_SHADOWS,False)
XML ファイル BakePresets
は、シャドウ ベイク処理用の頂点とテクスチャのプリセットを保存するために生成および使用されます。このファイルを使用することで、プリセットを追加または削除する時の問題を回避できます。
BakePresets
ファイルを削除すると、既定でないプリセットは次回起動時にプリセット リストからすべて削除されます。
BakePresets
ファイルが C:\Users\User\AppData\Roaming\VREDPro
に存在しない場合、自動的に生成されます。
BakePresets
のコピーを作成してフォルダ内の元のファイルを上書きすると、コピー内のプリセットが VRED で使用され、プリセット リスト内のプリセットが置き換えられます。
2022.1 で、シャドウ マテリアルを照らす光源に対する OpenGL のサポートを追加しました。
これを実現するには、ライト エディタの[プロパティ]セクションで、ライトの[シャドウ マテリアルのイルミネーションを行う]を有効にします。マテリアル エディタの[反射]セクションで、シャドウ マテリアルを選択した状態で[反射モード]を[拡散のみ]または[拡散+光沢]に設定します。
環境をリアルタイムで変更するか、露出を変更して、リアルタイム ライティングで変化を確認できるようにするには、ここに示された操作を行います。
[ライトとシャドウをベイク処理]モジュール > [ベイク処理の設定]> [直接光]セクションで[アンビエント オクルージョン]および[個別イルミネーションを有効化]を有効にします。
分離する必要がある光源を定義するには、次の手順を実行します。
シーングラフ内のオブジェクトを選択します。
[ライトとシャドウをベイク処理]モジュールで、[すべてを計算]ボタンをクリックします。
アンビエント オクルージョン マップを確認するには、[可視化] > [アンビエント オクルージョン レンダリング]を使用します。ジオメトリの光源からのライティングを確認にするには、[計算済みのイルミネーションのレンダリング]を使用します。
ジオメトリ ライトとは、シーンのイルミネーションにグローを適用して明るくする白熱光マテリアルが割り当てられているジオメトリのことです。[ベイク処理のレンダリング オプション]を使用して、ジオメトリの光源のオン/オフを切り替えます。[ベイク処理のレンダリング オプション]で、[個別イルミネーション]を有効または無効にします。無効にすると、アンビエント オクルージョンのみが表示されます。
この操作は、[バリアント セット]モジュールでスクリプトを使用して実行することもできます。[スクリプト]タブで、ライトのオン/オフの切り替えを作成できます。
setBakeRenderOption(VR_BAKED_SEPARATE_ILLUMINATION, not
getBakeRenderOption(VR_BAKED_SEPARATE_ILLUMINATION))
ドア パネルの周囲光などの白色光をシーンにベイク処理して、強度をリアルタイムで変更します。
周囲光に対して個別のイルミネーション ライトマップを作成します。
[可視化]メニュー> [ベイク処理のレンダリング オプション] > [個別イルミネーションのオプション]を選択して[強度]にアクセスします。
[強度]スライダを使用して、すべての個別イルミネーション ライトマップの明るさを変更します。
Python を使用して個別イルミネーション ライトマップの強度を変更するには、[バリアント セット]モジュール > [スクリプト]タブで setSeparateBakeInsensity(1,0)
を使用してこのバリアントを作成します。
ドア パネルの周囲光などの白いライトをシーンにベイク処理し、乗数を使用してカラーをリアルタイムで変更します。
現時点では、個別ライトの強度やカラー乗数を個々に変更したり、「青い」ライトに依存しないで「赤い」ライトをコントロールするなどの操作を行うライト クラスを作成することはできません。
周囲光に対して個別のイルミネーション ライトマップを作成します。
[可視化] メニュー> [ベイク処理のレンダリング オプション] > [個別イルミネーションのオプション]を選択して[カラー]にアクセスします。
色見本をクリックするか、スライダを移動し、ライトにカラーを乗算して変更します。
Python を使用して個別イルミネーション ライトマップのカラーを変更するには、[バリアント セット]モジュール > [スクリプト]タブで setSeparateBakeColor(Color3f(0.0, 0.1, 0.1))
を使用してこのバリアントを作成します。