VRコンテンツでシールドやホログラムの輪郭を美しく光らせるフレネル効果が、SPI(Single Pass Instanced)環境で立体視崩壊を起こす問題をノード設計で根本解決します。

\n\n

主な原因

Shader Graph標準の `Fresnel Effect` ノードは、内部で簡易的なカメラ視線方向の計算を行っていますが、これがVR(SPI)の「1ドローコールで左右2つの目に対応するカメラ行列」に対して正しい行列更新を行わないために発生します。左目のカメラ座標に基づいたフレネルマスクがそのまま右目にも流用されてしまうため、位置ズレが発生します。

具体的な解決方法

標準ノードを排除し、SPI環境でも正しく動作する「手動フレネル計算グラフ」を構築します。

[Normal Vector (World)] ──┐
                          ▼
                       [Dot Product] ──➔ [Subtract (from 1)] ──➔ [Power (Power値)] ──➔ (出力)
                          ▲
[View Direction (World)] ─┘

【ノード構築の手順】

  1. **`Normal Vector` ノード** (Space: `World`) を作成します。
  2. **`View Direction` ノード** (Space: `World`) を作成します。➔ **SPI互換のために必ずSpaceはWorldに設定**
  3. 上記2つの出力を **`Dot Product` (内積) ノード** に接続します。
  4. ドットプロダクトの出力を **`One Minus` ノード** に接続します(輪郭を光らせるための反転処理)。
  5. その出力を **`Power` ノード** に接続し、もう一方のピンに強度(例: 3)を入力して発光の「絞り込み」を行います。

※この構築パターンは、SPIアセンブリ内の `unity_StereoEyeIndex` に基づくビューマトリックス変換をUnityのコードジェネレータが自動で100%正しく補正するため、VR環境でも一切ズレのない完璧な輪郭発光が実現します。