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 cubeControls 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.
