Table of Contents

JFA Copy and Jump Passes

📖 Description

Implements the Jump Flood Algorithm's flood-fill steps: copying seeds to buffers and performing horizontal/vertical jumps to propagate distances for signed distance fields.

🔧 How It Works

  • Copy Pass: Initializes ping-pong buffers with seeds.
  • Jump Passes: Looped horizontal/vertical full-screen draws to "hop" distances.
  • Outputs: Texture2D_OutlineJFAUVJumpTextureMask_Outside/Inside.
  • Code Example:
    // Looped jumps in OutlineJFAUVHorizontalJumpPass
    for (int step = 1; step < maxSteps; step *= 2) {
        // Draw with step size
        mat.SetFloat(_StepSizePID, step);
        CoreUtils.DrawFullScreen(cmd, mat);
    }
    

📋 Requirements

  • Materials: outlineJFAUVHorizontalJumpPassMaterial, etc.
  • URP Settings: None.
  • Dependencies: Seeds pass.

🏷️ Tier Usage

  • Available in: Pro.
  • Conditional: Runs for JFA textures.

🐛 Troubleshooting

  • Issue: Infinite loops.
    • Fix: Cap maxSteps.
  • Performance: Scales with resolution.

See Render Passes Overview.