Performance & Quality
What Puddlecraft costs, how to make it cheaper, and what each quality tier gives up to get there.
Quality tiers
Set Quality on the Puddlecraft renderer feature (PuddlecraftQuality). It's per renderer, so one project can use High on PC and Low on a mobile renderer.
| Tier | What it gives up |
|---|---|
| High | Nothing: every setting as you chose it. |
| Medium | The ripple simulation, wetness map and raindrop ring map are capped at 512 texels a side; up to 5 of the 8 layers of rain rings in the water; 60% of the mist. |
| Low | As Medium, plus no ripples from footsteps, drips and spouts; up to 4 layers of rain rings; 40% of the mist. |
Measured in the demo scene in a downpour, at eye level in the street, Deferred, 1920×1080 on an RTX 3070 Laptop:
| Tier | Wet materials | Simulation and map passes, at 60 fps | Video memory |
|---|---|---|---|
| High | 0.35 ms | 0.31 ms | 38 MB |
| Medium | 0.30 ms | 0.09 ms | 19 MB |
| Low | 0.29 ms | 0.08 ms | 16 MB |
Everything Puddlecraft draws in that view comes to about 0.35 ms at High. The rendering path matters as much as the tier, though; see Forward, Forward+ and Deferred. Dry weather costs nothing measurable.
Where the time goes
On the GPU, in a downpour:
- Wet materials: the wet shading on the ground, and the biggest share. It scales with how much of the screen is wet ground, not with how many objects there are.
- Rain, splashes, mist and rings: the rain is drawn by the GPU in one call (about 95,000 drops in a downpour), and the splashes and mist are particles.
- Simulations and maps: ripples, the raindrop ring map, the wetness map and the rain cover. These run every frame around each camera, which is why their size settings matter.
- Wet tracks (Wet Tracks): only while some are drying. With Materials shading, every track is drawn into a 24 m map around each camera in one call (1536 texels a side on High, 9 MB; 512 on Medium and Low). Decals, for Overlay shading and tracks on a second level, are one more call.
On the CPU, Puddlecraft's main-thread work comes to about 0.9 ms a frame at 60 fps in a downpour, measured in the editor. A built player runs the same code faster. It makes no garbage per frame. The scene is searched for renderers every two seconds, spread over frames at half a millisecond each, so big levels don't hitch.
Settings that cost the most
If you need to win back some time, start here:
| Setting | Where | Cheaper when |
|---|---|---|
| Quality | Renderer feature | Medium or Low (see above). |
| Wet Normals | Renderer feature | Off, unless a screen-space reflection effect should see the puddles in Forward or Forward+. |
| Wetness Map Area, Wetness Map Resolution | Renderer feature | Smaller (Materials mode only). |
| Detail Area (m), Detail Resolution, Coverage (m) | Controller, Setup tab, Ripples | Smaller; Coverage (m) 0 turns the wide ripple area off. |
| Raindrop Rings (m) | Controller, Setup tab | Smaller. |
| Simulate Within (m) | Controller, Setup tab | Set it in big levels: in Play mode, drip edges and spouts farther from the camera stop firing splashes, ripples and drip sounds. 0 simulates them everywhere. |
| Mode, Near and Far distance and resolution, Moving Objects | Controller, Baking tab, Rain Cover | Baked cover costs nothing at runtime; in Realtime, smaller maps and Moving Objects off. |
| Drops per m² per s, Radius (m) | Rain preset, Rainfall tab | Fewer drops and a smaller radius; splashes and mist have their own radius. |
| Max Particles of the rain prefab's drop system | Rain prefab | Caps how many drops are drawn. |
| Max Drips Per Second | Puddlecraft Audio | Fewer drip sounds. |
Measuring it yourself
Open the Profiler. Puddlecraft's GPU passes are named Puddlecraft … in the GPU module, and its wet shading shows up inside URP's own Draw GBuffer (Deferred) or DrawOpaqueObjects (Forward, Forward+) pass. To see its total cost in your scene, compare a frame with the Puddlecraft renderer feature turned off.