Aller au contenu

pBounce Node

By Kriss Norde

pBounce adds a collision surface for particles - they bounce instead of passing through. Physical parameters: Elasticity (energy retention), Variance (angle randomization), Spin (generated rotation), Roughness. Essential for rain hitting the ground, bouncing confetti and balls with physics.

Overview

pBounce sits between a pEmitter (or another force) and a pRender. It defines a virtual surface: when a particle crosses it, the particle bounces according to the physical laws you set.

Typical surface: a Shape 3D (a plane for a floor, a sphere for a hollow ball, a cube for a room). You can also use a 2D bitmap for a custom surface shape.

Where to find this node

  • Effects Library: Tools > Particles > pBounce
  • Quick add: right-click in the Node Editor → Add Tool > Particles > pBounce

Inputs

  • Particle Input (orange) - output of another particle node.
  • Region Input (green/magenta) - optional. A 2D bitmap or 3D mesh that defines the collision surface. If it is not connected, a parametric shape is used (Region tab).

Setup

Rain bouncing on the ground:
pEmitter (Velocity Y -0.05) → pBounce (Shape 3D plane as floor, Elasticity 0.3)
                           → pFriction
                           → pRender (3D Mode) → Merge 3D

Falling confetti:
pEmitter (initial burst) → pDirectionalForce (negative Y gravity)
                             → pBounce (floor plane, Elasticity 0.5, Variance)
                             → pRender

Ball in a 3D box:
pEmitter (single particle) → pBounce (Region Mesh = hollow cube)
                           → a particle bouncing endlessly inside the cube

Controls tab

Elasticity
Energy retained on the bounce. 1.0 = the particle keeps all its speed after the bounce (perfect bounce). 0.5 = half the energy is kept (realistic bounce). 0.0 = the particle stops on impact (no bounce).
Variance
Randomizes the reflection angle. Simulates a rough surface where bounces are not perfectly specular. Essential for a natural result (otherwise every bounce is mathematically perfect and too regular).
Spin
Adds rotation to particles on collision. Positive = forward rotation (rolling), negative = backward rotation. Useful for sprites that should spin after impact.
Roughness
Randomizes the bounce direction even more than Variance. For very rough surfaces (sand, gravel).
Surface Motion
Makes the bounce surface "move" virtually (without the actual surface moving) - particles bounce off with a speed boost in the direction of the motion. Simulates a moving surface (e.g. a conveyor belt).
Surface Motion Direction
Angle of the Surface Motion.
Conditions (Sets)
Applies the bounce only to certain particle sets. Lets you have several types in the same comp with different behaviors.

Collision surface

The bounce surface is defined by:

  • The Region Tab of pBounce (default) with parametric shapes: plane, cube, sphere, line.
  • Mesh Input: a connected Shape 3D or FBX mesh. The exact surface of the mesh is used for the collision.
  • Bitmap Input: a 2D image where white/alpha pixels = surface. Useful in 2D mode for collisions on custom shapes.

Tip: a large Shape 3D Plane at the bottom of the scene = an infinite floor for falling particles.

Use cases

  • Rain hitting the ground - snow/rain pEmitter + pBounce with Elasticity 0.1-0.2 (heavily damped bounce) + pFriction = drops that quickly come to rest on the ground.
  • Falling confetti - Elasticity 0.4-0.6 with high Variance = confetti bouncing irregularly, for a natural look.
  • Bouncing ball - single particle + pDirectionalForce (gravity) + pBounce (Elasticity 0.8 for a very elastic ball) = a realistic bounce.
  • Explosion with debris - particles emitted violently + a floor pBounce = debris that bounces and rolls.
  • Particles in a 3D room - Region Mesh = a hollow cube with 6 faces = confined particles bouncing forever.
  • Fountain / water jet - particles emitted upward + gravity + pBounce on a plane below + Surface Motion for dispersion = a fountain that falls back and slides.
  • Bouncing sparks - low Elasticity + high Variance + Friction = sparks that bounce briefly, then die out.

Tips

  • Realistic Elasticity: 0.3-0.6 for most materials (moderate rubber, plastic, etc.). 1.0 = an unrealistically perfect bounce (except a superball). 0 = sand/dust that does not bounce.
  • Variance is a must for a natural look - without variance, every bounce is geometrically perfect. 10-30% variance makes the result believable.
  • Combine with pFriction - after the bounce, particles on the ground often need to slow down (ground friction). A pFriction downstream of pBounce simulates this damping.
  • Sub-Frame calculation matters - fast particles can "pass through" the surface without bouncing if Sub-Frame is low. Raise Sub-Frame in pRender (4-8+).
  • Shape 3D Plane XZ for a floor - a Shape 3D Plane oriented on XZ (horizontal) with Center Y = 0 = a standard floor for downward gravity.
  • The order of forces matters - pDirectionalForce (gravity) must come before pBounce so the particles reach the surface. pFriction after it to damp the bounces.
  • Conditions Sets for selection - with several particle types (rain + sparks), apply pBounce only to the "rain" Set so the sparks do not bounce on the same floor.