
A wet asphalt PBR material after rain is not a darker JPEG. Water fills micro gaps, so roughness drops in puddles and wheel polish, while dry chips stay matte. Night lamps then show the difference. This guide builds a rain material on top of a dry Locker3d road instead of flooding the whole street.
Dry asphalt first, then a wet mask
Start with a complete dry set: albedo, roughness, normal. Fresh highway mix is dark and fine; city streets are patched and lighter. Load a CC0 pack from asphalt. Confirm metalness is 0. Map roles: complete PBR textures guide. Blender wiring: how to apply PBR textures in Blender. Only after the dry road looks right at walking height do you add water.
Roughness puddles, not a global wet slider
Paint or generate a puddle mask: low areas, ruts, and the downhill edge of a crown. In the shader, mix the dry roughness toward a low value (about 0.05–0.15) where the mask is white. Leave dry aggregate in the 0.4–0.7 range. Optional: slightly darken albedo in the same mask; water darkens tar, it does not turn it black. Do not put puddle shapes into a tiling albedo or they will stamp every few meters. A second UV, a vertex-color mask, or a decal mesh is the right home for puddles.
Night lighting is the real test
Noon sun hides a fake wet road. Street lamps, headlights, and shop signs do not. Place a sharp highlight and orbit. If the whole lane mirrors the lamp, roughness is too low everywhere. If puddles are invisible, the mask is too soft or the wet roughness is still mid-gray. Keep IOR in a water-like range if your shader exposes clearcoat or a wet layer; a second glossy BSDF mixed by the mask is a common Blender approach. Unreal can lerp roughness and add a cheap reflection in the puddle only.
Normals, height, and standing water
The dry normal still shows stones under a thin film. Deep puddles need a flatter normal (mix toward a flat vector) so they read as water, not bumpy tar. Height or a separate water mesh gives a real meniscus at the puddle lip. Ripples belong on that mesh, not in the tiling asphalt normal. Oil sheen is a tiny roughness break plus a slight hue shift—not metalness.
Scale, lanes, and markings
Match aggregate size to a photo at the same camera height. Align directional wear with traffic. Lane paint stays a decal: wet paint is glossier than wet asphalt, so give markings their own roughness. Curbs stay catalog concrete, not a tinted road tile. Hide dry-tile repetition with offsets before you add rain, or the puddle mask will follow a grid.
CC0 roads you can soak for a shot
Locker3d asphalt is CC0. You can wet it, crop it, and ship it in commercial night stills and games without credit. Limits: CC0 textures: what you can and cannot do. More pavement notes live on the blog. Save the dry material and the wet mix as two groups so a sunny version of the same street is a mute on the mask, not a rebuild.
Frequently asked questions
Should the whole road use a low roughness after rain?
No. Only puddles and polished wheel paths go glossy. Dry aggregate and fresh chip stay rough. A single wet slider on the entire mesh looks like plastic, not rain.
Do I need a new albedo for wet asphalt?
A slight darken in wet zones helps, but most of the effect is roughness (and a reflection). Keep the dry albedo as the base and multiply a wet mask rather than painting a new tile.
Are Locker3d asphalt textures CC0 for commercial night shots?
Yes. Download them from the asphalt category and use them in games and archviz without attribution. Build puddles as a mask or a separate mesh.