DOF
深度テクスチャから錯乱円(CoC)を計算し、ボケた絵とシャープな絵を混ぜる被写界深度ノードです。CoCは saturate(|線形深度 - Focus Distance| / Focus Range) なので、合焦面から離れるほどボケます。処理はCoC付きの1/2解像度ダウンサンプル → セパラブルブラー往復1回 → 合成の3パスです。
- Focus Distance — 合焦距離。初期値30。最小0.01でガード(
Focus Distance入力 /focusInput) - Focus Range — この距離だけ離れるとCoCが最大になります。初期値10。最小0.001でガード(
Focus Range入力 /rangeInput) - Blur Strength — ぼかしのサンプル間隔倍率。初期値2。負値は0として扱われます(
Blur Strength入力 /blurInput) - Camera — near/farを線形深度の復元に使います
Depth Textureが未接続だと素通しになります。 Renderノードの深度出力を繋いでください。
Camera入力が未接続(または無効)のときは既定カメラ値にフォールバックします(near=0.1 / far=1000)。実際のカメラのnear/farがこれと違うと、Focus Distanceの数値と実際の合焦位置がずれます。
合成時は自分のCoCとぼかし側のCoCの大きいほうを採用するので、手前のボケが背景側へ滲み出します。
出力のアルファは常に1に固定されます。In入力を外すと出力は黒でクリアされます。
出力はHDR対応で、解像度は入力と同じです。
入力ポート
| Port ID | 型 |
|---|---|
Render Texture | RenderTexture |
Depth Texture | RenderTexture |
Camera | CameraDataInput |
Focus Distance | float |
Focus Range | float |
Blur Strength | float |
出力ポート
| Port ID | 型 |
|---|---|
Render Texture | RenderTexture |
スクリプトから設定可能なメンバー
| パス | 型 |
|---|---|
focusInput | float |
rangeInput | float |
blurInput | float |
Synapse Apps(スクリプティング)
await synapse.modules.create({ type: "DOF" }) 




