ライトマップの刷新

2022.1 では、光源の個別ベイク処理[ベイク処理のレンダリング オプション]デバッグ モード、シャドウ マテリアルにベイク処理されたライトを表示するオプション、ベース テクスチャと個別テクスチャをロードするオプション、およびベース イルミネーション ライトマップと個別イルミネーション ライトマップをプレビューするオプションが追加されました。また、シャドウ ベイク処理用の頂点とテクスチャを保存する新しい BakePresets ファイルが追加されました。

2022.1 より前のバージョンでは、ライトをベイク処理する際に[ライトとシャドウ]を使用していましたが、この操作を行うと、イルミネーション全体(シャドウとイルミネーション)がライトマップにベイク処理されました。これにより、環境からのライト(ベース イルミネーション)が追加されるため、環境の切り替えや露出の変更を実行することはできませんでした。これらは、このライトマップにベイク処理されていました。

2022.1 に新しいアプローチが導入され、光源、ジオメトリの光源、シャドウを個別にベイク処理するよう柔軟に設定できるようになりました。後で環境の切り替えや露出の変更を行って、アンビエント オクルージョンを設定することができます。これで、HDR からのライティングを IBL でリアルタイムに取得し、分離されている光源を指定できるようになりました。

個別のイルミネーションとしてベイク処理

ライト エディタの[ライトの設定]タブの[プロパティ]セクション、およびマテリアル エディタの[白熱光]セクションに、[個別イルミネーションとしてベイク処理]が追加されました。このオプションを使用して、分離する必要がある光源を定義します。個々の光源またはジオメトリ光源の白熱光マテリアルのために、ベイク処理されたライティングからアンビエント オクルージョンまたはシャドウを分離することができます。[個別イルミネーションを有効化]と一緒に使用して、ライトマップを計算します。

[個別イルミネーションとしてベイク処理]を使用すると、ドア パネルの周囲光などのライトが個別のライトマップにベイク処理されるため、このライトに影響を与えずに環境の切り替え、回転、変更または露出の変更を行うことができます。スクリプトを使用して、ベイク処理された個別のライトマップの強度を変更し、ドア パネルの周囲光のオン/オフを切り替えるか、カラーをリアルタイムで変更します。

個別イルミネーション専用

[個別イルミネーションを有効化]を有効にした状態で、ライトとシャドウの直接光でのみ使用できます

[ライトとシャドウをベイク処理]モジュールの[間接光]セクションに、[個別イルミネーション専用]が追加されました。このオプションは、個別のイルミネーションにのみ間接光を提供し、ベイク処理からベース イルミネーションを除外して、シーンを明るくします。明るくする必要がない場合は、このオプションを無効にします。

個別イルミネーションを有効化

[ライトとシャドウをベイク処理]モジュールに、[個別イルミネーションを有効化]が追加されました。VRED は指定された光源からのライトを個別のライトマップにベイク処理します。ユーザは特定のライティング設定や環境からの多数の間接光をベイク処理して、シーンを明るくすることができるほかに、後でオンとオフを切り替えられる分離されたライトを追加することができます

たとえば、白熱光マテリアルが割り当てられているジオメトリを使用して、自動車の中に周囲光を作成します。マテリアルを選択した状態で、マテリアル エディタの[白熱光]セクションで[個別イルミネーションとしてベイク処理]を有効にします。[ライトとシャドウをベイク処理]モジュールで、[シャドウをベイク処理]と[個別イルミネーションを有効化]を選択し、ライトとシャドウを生成してベイク処理します。

ライトマップのロードとプレビュー

ライトマップを[詳細]タブにロードし、新しい[ベース テクスチャ]オプションと[個別のテクスチャ]オプションを使用してこれらのテクスチャを個別にロードします。ベイク処理されたテクスチャのライトマップをプレビューするには、新しいタブである[ベース イルミネーション][個別イルミネーション]を選択します。

3 タブ

ベイク処理のレンダリング オプション

[可視化]メニューに追加された [ベイク処理のレンダリング オプション]デバッグ モードを使用して、3D レンダリング中に表示されるベイク処理されたライトの種類を選択し、表示内容を確認します。ベイク処理されたライトのオン/オフの切り替えをシミュレートします。実行時に環境が与える影響と、[露出]などの環境マテリアル コントロールによってシーンのイルミネーションが変化する様子を確認します。

[計算済みのイルミネーションのレンダリング]モードで次のオプションが有効になっている場合は、シーン内のすべてのイルミネーションが表示されます。

[ベイク処理のレンダリング オプション]ダイアログ

次に、バリアント セットで使用するスクリプトを示します。

BakePresets

XML ファイル BakePresets は、シャドウ ベイク処理用の頂点とテクスチャのプリセットを保存するために生成および使用されます。このファイルを使用することで、プリセットを追加または削除する時の問題を回避できます。

シャドウ マテリアルを照らす光源に対する OpenGL

2022.1 で、シャドウ マテリアルを照らす光源に対する OpenGL のサポートを追加しました。

これを実現するには、ライト エディタの[プロパティ]セクションで、ライトの[シャドウ マテリアルのイルミネーションを行う]を有効にします。マテリアル エディタの[反射]セクションで、シャドウ マテリアルを選択した状態で[反射モード]を[拡散のみ]または[拡散+光沢]に設定します。

アンビエント オクルージョンのライトと個別ライトをベイク処理する方法

環境をリアルタイムで変更するか、露出を変更して、リアルタイム ライティングで変化を確認できるようにするには、ここに示された操作を行います。

  1. [ライトとシャドウをベイク処理]モジュール > [ベイク処理の設定]> [直接光]セクションで[アンビエント オクルージョン]および[個別イルミネーションを有効化]を有効にします。

  2. 分離する必要がある光源を定義するには、次の手順を実行します。

    • マテリアル エディタでマテリアルを選択し、[白熱光]セクションで[個別イルミネーションとしてベイク処理]および[光源として使用 (レイトレーシングのみ)]を有効にします。
    • ライト エディタで光源を選択し、[プロパティ]セクションで[個別イルミネーションとしてベイク処理]を有効にします。
  3. シーングラフ内のオブジェクトを選択します。

  4. [ライトとシャドウをベイク処理]モジュールで、[すべてを計算]ボタンをクリックします。

    ヒント:

    アンビエント オクルージョン マップを確認するには、[可視化] > [アンビエント オクルージョン レンダリング]を使用します。ジオメトリの光源からのライティングを確認にするには、[計算済みのイルミネーションのレンダリング]を使用します。

ジオメトリのライティングのオン/オフを切り替える方法

ジオメトリ ライトとは、シーンのイルミネーションにグローを適用して明るくする白熱光マテリアルが割り当てられているジオメトリのことです。[ベイク処理のレンダリング オプション]を使用して、ジオメトリの光源のオン/オフを切り替えます。[ベイク処理のレンダリング オプション]で、[個別イルミネーション]を有効または無効にします。無効にすると、アンビエント オクルージョンのみが表示されます。

この操作は、[バリアント セット]モジュールでスクリプトを使用して実行することもできます。[スクリプト]タブで、ライトのオン/オフの切り替えを作成できます。

setBakeRenderOption(VR_BAKED_SEPARATE_ILLUMINATION, not
getBakeRenderOption(VR_BAKED_SEPARATE_ILLUMINATION))

個別イルミネーションの強度をコントロールする方法

ドア パネルの周囲光などの白色光をシーンにベイク処理して、強度をリアルタイムで変更します。

  1. 周囲光に対して個別のイルミネーション ライトマップを作成します。

    • ライトの場合は、ライトを選択した状態で[ライトとシャドウをベイク処理]モジュールの[ベイク処理の設定]タブの[アンビエント オクルージョン]を選択し、[個別イルミネーションを有効化]を有効にします。[すべてを計算]をクリックします。
    • ジオメトリ光源の場合は、ジオメトリを選択した状態でマテリアル エディタでマテリアルを選択し、[白熱光]セクションで[個別イルミネーションとしてベイク処理]と[光源として使用 (レイトレーシングのみ)]を有効にします。[ライトとシャドウをベイク処理]モジュールで[すべてを計算]をクリックします。
  2. [可視化]メニュー> [ベイク処理のレンダリング オプション] > [個別イルミネーションのオプション]を選択して[強度]にアクセスします。

  3. [強度]スライダを使用して、すべての個別イルミネーション ライトマップの明るさを変更します。

ヒント:

Python を使用して個別イルミネーション ライトマップの強度を変更するには、[バリアント セット]モジュール > [スクリプト]タブで setSeparateBakeInsensity(1,0) を使用してこのバリアントを作成します。

個別イルミネーション マップのカラー乗数をコントロールする方法

ドア パネルの周囲光などの白いライトをシーンにベイク処理し、乗数を使用してカラーをリアルタイムで変更します。

注:

現時点では、個別ライトの強度やカラー乗数を個々に変更したり、「青い」ライトに依存しないで「赤い」ライトをコントロールするなどの操作を行うライト クラスを作成することはできません。

  1. 周囲光に対して個別のイルミネーション ライトマップを作成します。

    • ライトの場合は、ライトを選択した状態で[ライトとシャドウをベイク処理]モジュールの[ベイク処理の設定]タブの[アンビエント オクルージョン]を選択し、[個別イルミネーションを有効化]を有効にします。[すべてを計算]をクリックします。
    • ジオメトリ光源の場合は、ジオメトリを選択した状態でマテリアル エディタでマテリアルを選択し、[白熱光]セクションで[個別イルミネーションとしてベイク処理]と[光源として使用 (レイトレーシングのみ)]を有効にします。[ライトとシャドウをベイク処理]モジュールで[すべてを計算]をクリックします。
  2. [可視化] メニュー> [ベイク処理のレンダリング オプション] > [個別イルミネーションのオプション]を選択して[カラー]にアクセスします。

  3. 色見本をクリックするか、スライダを移動し、ライトにカラーを乗算して変更します。

ヒント:

Python を使用して個別イルミネーション ライトマップのカラーを変更するには、[バリアント セット]モジュール > [スクリプト]タブで setSeparateBakeColor(Color3f(0.0, 0.1, 0.1)) を使用してこのバリアントを作成します。