Skip to content
VisiomakeVisiomake

Fixing Noise, Fireflies, and Splotchy Lighting in Renders — When Your Denoiser Isn't Enough

July 19, 2026

The render finished overnight. Most of it looks great — except the sofa fabric is a smear of noise, there are three blinding white pixels on the chrome floor lamp, and the ceiling has blotchy patches of light that look like water damage. You ran the denoiser. It helped with the flat walls and made everything else slightly worse.

If that sounds familiar, this guide is for you. We'll break down the three artifact types that survive denoising — residual noise, fireflies, and splotchy GI lighting — explain why built-in denoisers (V-Ray denoiser, Intel Open Image Denoise, NVIDIA OptiX) fail on exactly these cases, walk through the classic in-engine fixes and what they cost you in render time, and show a newer option: targeted AI inpainting, which repairs just the broken region of a finished render in a couple of minutes, without touching your scene file.

Know your enemy: the three artifacts that survive denoising

These three problems look similar in a glance but have different causes — and different fixes. Diagnosing which one you have is half the battle.

1. Residual noise (grain that won't go away)

Classic Monte Carlo variance: the sampler hasn't converged, so pixels in the same surface land on slightly different values. It concentrates in the hardest lighting situations — glossy reflections, fabric and carpet, dark corners lit only by indirect light, and anything behind glass. Doubling your samples only halves the noise (variance falls with the square root of sample count), which is why "just render longer" gets expensive fast.

2. Fireflies (isolated superbright pixels)

Fireflies aren't ordinary noise — they're single samples that found an extremely improbable but extremely bright light path, usually a caustic through glass, a tiny bright HDRI hotspot reflected in a glossy surface, or a small high-intensity light. Because one firefly pixel can be thousands of times brighter than its neighbors, averaging more samples barely dims it, and denoisers often smear it into a glowing blob instead of removing it.

3. Splotchy lighting (GI blotches)

Blotches — irregular patches of light and dark on walls and ceilings — come from low-quality global illumination interpolation: Light Cache or irradiance map settings that are too coarse, leaking light through geometry gaps, or undersampled indirect bounces. This is a low-frequency error. Denoisers are built to remove high-frequency grain, so they happily preserve the splotches while polishing the grain around them, sometimes making the blotchiness more visible.

Why your denoiser isn't enough

Modern denoisers are genuinely good at their core job — removing uniform, high-frequency grain from mostly converged images. The failures start at the edges of that job description:

  • Detail smudging. AI denoisers (OIDN, OptiX) reconstruct the image from a learned prior. On low-sample regions they can't tell noise from texture, so carpet weave, wood grain, fabric, and foliage come out looking like melted plastic. Forum threads on Chaos, Blender Artists, and Autodesk communities are full of exactly this complaint.
  • Fireflies get smeared, not removed. A denoiser averages the firefly's energy into surrounding pixels — you trade one hot pixel for a soft glowing splotch.
  • Low-frequency GI splotches pass straight through. The denoiser sees smooth (locally consistent) patches, decides they're signal, and keeps them.
  • Uneven results across one image. A denoiser tuned for the noisy sofa over-smooths the already-clean wall next to it. You can't dial strength per region without manual masking in post.
  • Animation flicker. Frame-by-frame denoising produces temporal shimmer, which is why animations usually need cranked-up samples anyway — the denoiser can't save you there.

The pattern: denoisers are a global tool, but the artifacts that survive are local problems. That mismatch is what the rest of this guide is about.

The classic in-engine fixes (and what they cost)

If you can afford to re-render, fix the cause. These are the standard levers, roughly in order of cost-effectiveness:

For fireflies

  • Clamp sample intensity. V-Ray's Max ray intensity, Corona's highlight clamping, Cycles' Clamp Indirect (values around 3–10) remove most fireflies at the cost of slightly dimmer highlights and less accurate caustics. This is the single best value fix in rendering.
  • Enlarge tiny bright sources. A 5 cm spherical light at high intensity is a firefly factory; a larger, dimmer source samples much more cleanly.
  • Kill caustics you don't need. If glass caustics aren't a visual feature of the shot, disable or fake them.

For residual noise

  • Raise samples where it matters — per-light or per-material sampling overrides beat global sample increases.
  • Use portals at windows so interior daylight sampling stops guessing where the light comes from.
  • Simplify glossy chains — reflections seen through refractions are the slowest paths to converge.

For splotchy GI

  • Raise Light Cache subdivisions / retrace, or switch problem shots to Brute Force + Light Cache instead of irradiance map.
  • Fix light leaks — close geometry gaps, give walls thickness.

The catch is always the same: every one of these requires re-rendering. On a 4K interior at 2–6 hours per frame, "tweak a setting and re-render to check" is a half-day loop — and the deadline doesn't move. That's the gap targeted AI repair fills.

Before
Before
After
After
Before: residual noise on the fabric, fireflies on the chrome, GI splotches on the ceiling. After: the same render repaired with targeted AI inpainting — no re-render.

The alternative: targeted AI inpainting on the finished render

AI inpainting takes a different approach to the same problem. Instead of treating the whole image (like a denoiser) or the whole scene (like re-rendering), you mask just the broken region and regenerate only that area, with the surrounding clean pixels anchoring the result. The model synthesizes plausible, artifact-free content that matches the lighting, materials, and perspective around the mask.

Why this works so well for exactly the artifacts denoisers miss:

  • It's local by design. The clean 90% of your render is never touched — no global smoothing, no detail loss outside the mask.
  • Fireflies simply disappear. The hot pixels are inside the mask, so they don't get averaged into a glow — they're replaced.
  • Splotches get repainted as even surfaces. The model has seen millions of clean walls and ceilings; regenerating a blotchy ceiling produces the smooth gradient the GI solver failed to compute.
  • Noisy fabric comes back with texture, not smudge — the model generates plausible weave and grain rather than blurring what's there.

The workflow (about 2–5 minutes per fix)

  1. Upload the finished render — the full-resolution still, no scene file needed.
  2. Brush a mask over the artifact — the splotchy ceiling patch, the noisy sofa, the firefly cluster. Slightly overshoot the boundary so the model blends into clean pixels.
  3. Describe what should be there — e.g. "smooth white plaster ceiling with even soft lighting" or "gray linen sofa fabric, sharp weave detail". Keep it literal and material-focused.
  4. Generate, compare, iterate. A couple of variations takes seconds; pick the one that matches, or refine the prompt.

Two honest caveats: inpainting is not physically accurate — it produces plausible pixels, not a light-transport solution, so keep it away from areas where a client will measure accuracy (brand materials, signage, precise fixtures). And for animations, per-frame inpainting isn't temporally stable — fix the scene for animated shots, use inpainting for stills.

ApproachFixes noiseFixes firefliesFixes GI splotchesDetail preservedTypical cost
Built-in denoiser (OIDN / OptiX / V-Ray)MostlyPoorly (smears)NoOften smudgedSeconds, but global
Re-render with higher samplesYesPartlyPartlyYesHours per attempt
Re-render with clamping + GI fixesYesYesYesYesHours + setup time
Targeted AI inpaintingYes (masked area)YesYesYes (outside mask untouched)2–5 min per region

A practical triage: which fix, when

Here's the decision logic we'd suggest for a real production day:

  • Artifact is small and local, deadline is close (a firefly cluster, one blotchy ceiling, one noisy cushion) → inpaint it. Minutes, zero render farm time.
  • Artifact is everywhere (the whole image is grainy) → the scene is genuinely undersampled; denoise if it holds up, otherwise re-render with more samples. Inpainting isn't meant to repaint an entire frame.
  • The shot will be re-used or animated → fix the root cause in-engine (clamping, portals, GI settings). Post-fixes don't carry over to the next frame or the next camera angle.
  • Recurring problem across projects → spend the afternoon on scene hygiene once: light portals, clamped secondaries, properly sized light sources, walls with thickness. Your future renders inherit the fix.

Most archviz teams end up with a hybrid: sane scene settings so 95% of the frame is clean, a light denoiser pass, and inpainting for the two or three stubborn regions that would otherwise trigger an overnight re-render.

Edit Any Part of Your Render Without Starting Over

Add reference images from your library — specific furniture, materials, or objects — place them directly on your render, and let AI blend them in naturally. Or mask any area and describe what should appear instead. Either way: seamless edits in seconds, no re-render needed.

Try it now

The economics changed the moment we stopped equating 'fix' with 're-render'. A blotchy ceiling used to mean four more hours on the farm and a nervous email to the client. Now it's a two-minute mask on the finished still, and the farm stays free for the shots that actually need it.

— Visiomake Team, AI tools for architectural visualization

Frequently Asked Questions

Want to try it yourself?

Transform your images with AI-powered tools — fast, easy, and free to start.