導入
平面反射は、床や他の平面面に現実的な反射を追加する人気の方法です。このドキュメントでは、シーンに平面反射を追加する方法を説明します。
平面反射は、他の方法と比べて比較的低いパフォーマンス要件で、現実的でリアルタイムな反射を実現します。
このドキュメントのビジュアル例では、当社のMini Studioストックシーンを使用しています。
平面反射の追加方法
シーンの設定が完了し、使用したいマテリアルが追加されていることを前提とします。この例では床に反射を追加しますが、水平でない反射については後で説明します。
床モデルのシェーダーに移動し、名前の中に_MIRRORを含むシェーダーに変更します。
この例では、PBR_Mirror_Norm_Light.xshadを使用しています。
Transmit videoを追加し、From TunnelプロパティでMIRROR-1を選択し、そのOutピンをシェーダーのMirror Image入力に接続します:
Flow editorのRootに移動し、Render_Gener/Render_General_PBRを探します。
右クリックして複合ノードのリンク解除を選択します。
複合ノードの詳細についてはこちらをご覧ください。
以下のノードは平面反射を表します。
ご覧の通り、Mirror Cameraノードがあり、これはシーンを鏡像カメラの視点から再レンダリングし、その出力を先ほど mention したMIRROR-1トンネルに接続しています。
ここには他の重要なノードもありますが、これらはこのドキュメントの後半で説明します。
平面反射の配置
正しい結果を得るためには、平面反射の「クリップ プレーン」を床と同じ高さにあるように配置する必要があります。
これを行うには、クリップ プレーン ノードを選択し、床と同じ高さにあるように移動します。
- 変換ギズモ を使用すると、この操作が簡単になります。
この例では正しく配置されたクリップ平面を示しています:
注意:ちらつき効果はZ-fightingと呼ばれ、2つの平面が同じ位置にある場合に発生します。これは反射には表示されません。
結果:
反射の追加
追加の反射を追加するには、Render_General/Render_General_PBRモジュールに移動し、以前に言及したノードを探します:
すべてを選択し、ALTキーを押しながらドラッグアンドドロップします。これにより、接続を維持したままノードが複製されます。
Mirror-1-2トンネルのInto Tunnelプロパティを別の名前に変更します。私はMirror-2に変更しました:
2つ目の反射を追加したいモデルに移動し、How to add Planar reflectionで説明した手順を同じように実行します。
この場合、Transmit video ノードを追加する際、From Tunnel プロパティで「MIRROR-2」を選択する必要があります。
クリップ平面を正しい位置に移動することも忘れないでください。
反射は好きなだけ追加できますが、パフォーマンス要件は比較的低いものの、GPU リソースを相当量消費するため、注意が必要です。
2~3個を超える追加は避けた方が良いでしょう。
反射の最適化
シーンに平面反射を追加すると、期待した見た目にならない場合や、PCが過負荷になる可能性があります。
デフォルトでは、平面反射は元のレンダリングの半分の解像度でレンダリングされます。これは、実際の フレームサイズ :
ここで、レンダリングされる画像のサイズを増加(B値を低く)または減少(B値を高く)できます。
元のレンダリングの解像度の半分を超える設定は避けてください。これは大幅にパフォーマンスを消費し、視覚的な改善はほとんど得られません。
ブラー/ミラーイメージフィルター
デフォルトでは、ミラーカメラの映像はブラー処理されます。Render_GeneralではBlurrerノードを使用し、Render_General_PBRではMirror Image Filterを使用しています。
これらのノードは好みに合わせて変更可能です。
両方の方法にはメリットがあります:
- Blurrerは少しより良い結果を得られ、パフォーマンス効率がやや高く、画像のボケ具合を細かく調整できます。
- Mirror Image Filterは深度ベースのボケを使用し、マテリアルのラフネスに基づいて画像のボケ具合を計算します。
ビジュアルアーティファクトとその解決方法
Planar Reflectionsを使用する際、次のようなちらつきが発生する可能性があります:
この問題を目立たなくしたり、完全に消すための方法は複数あります。コストの低い順に各オプションを説明します。
Blurrer 品質:
Blurrer ノードにはQuality設定があります。まずこの設定を高い品質に増やすことをおすすめします。通常はMediumで十分です。
Mirror Camera アンチエイリアシング
Mirror Cameraには、レンダリングされた画像のエイリアシングアーティファクトを軽減するAntialiasプロパティがあります。デフォルトでは0に設定されています。
この値を増加させてみてください。ただし、4倍を超える設定(絶対に必要でない限り)は、パフォーマンスが大幅に低下し、結果もほとんど改善されないため、避けた方が良いでしょう。
ミラーカメラの解像度を増加させる
先ほど説明したように、平面反射はGPUの処理時間を節約するため、低解像度でレンダリングされます。これはDivide 1ノード経由で行われます。
Blurrerの品質を上げる、Antialiasの設定を上げる、またはその組み合わせを試しても十分な結果が得られない場合、レンダリング画像の解像度を上げることを試すことができます。
これを行うには、Divide 1ノードのB プロパティをDECREASEします。
1未満の値に設定することはおすすめしません。これは解像度を上げるため、GPUに大きな負荷がかかります。
これらの設定は同時に使用することもでき、希望のビジュアルとパフォーマンスの結果を得ることができます。
例えば、Blurrer Qualityを増加させ、Antialiasingを減少させながら、解像度を変更しないようにできます。
基本的には、これらの設定を調整して最適なバランスを見つける必要があります。
垂直反射の追加
垂直面にもPlanar Reflectionを使用できますが、重要な制限があります。
ビルボードは3D空間内の2D画像であるため、タレントの正面の情報しかありません。これにより、不正な反射が発生します:
この問題を回避するには、ビルボード/反射を、反射内にビルボードが表示されない位置に配置するか、
または画像をぼかしてビルボードが認識できない程度にします。