Path Tracing Artifiacts

I am getting some artifacts in my render. I can’t figure out what is causing it. I used the MRG PT 1080 settings and i’ve shared my PT settings in the post-process volume.

thank you.

The image on the post is the Post Process path-tracing panel, not a crop of the bad frame, so this is from those settings. A couple of them cause the usual “it will not clean up” artifacts even at 2048 samples.

Denoiser is on. For a still, that is the most common source of blotches, smeared specular, and a watercolor look that never goes away no matter how high Samples Per Pixel is. Those 2048 spp only converge the raw path-traced image. The denoiser replaces that with a filtered result and then stops getting better. Duplicate the volume, turn Denoiser off, and render one frame. If the artifacts turn into ordinary noise (or disappear), they were the denoiser. Leave it off for final stills and use it for lookdev only.

Max Path Intensity is 24. That clamps any path brighter than 24. It kills fireflies, but it also punches dark holes into indirect light and emissive highlights, which reads as stained patches on glossy surfaces. For a reference frame try something like 100 to 1000, or unclamped, and see if the stain goes away. If you then get fireflies, those are small bright emitters rather than a broken shader. Emissive meshes that are not actual lights are the usual source: raise samples, or replace the tiny emitter with a real light.

Reference Atmosphere is on. If the artifact is a band at the horizon, a black sky, or speckled fog, try it off and light with an HDRI skylight instead. Path tracing the sky atmosphere is picky about the sky-light setup.

If what you are seeing is a faceted shadow or a low-poly silhouette that the lit viewport does not have, that is Nanite. The path tracer traces the fallback mesh, not the full Nanite clusters. Raise the fallback triangle budget on those meshes. More samples will not fix it.

If you can post a crop of the actual frame and say which of these it is (fireflies, dark stains, smeared reflections, or faceted shadows), it can be narrowed to one of the above.

I shared the video. I used the word “artifacts” because I’m not sure what else to use. It’s only visible or noticeable in the video, not in a still frame. If you watch the video, you can see a “swimming effect?” or “flickering” on the spline mesh and the bottle when it appears.

Are you setting your sampling in MRQ or just in the level?

Since the issue is only visible in motion, I’d focus on temporal stability rather than treating it as a typical path-tracing noise problem.

The first thing I’d check is your actual sampling configuration in Movie Render Graph, since those settings can override what’s defined in the Post Process Volume.

I’d also look closely at the denoiser. You’re currently using 2048 samples with denoising enabled, but increasing the sample count doesn’t necessarily eliminate temporal instability. A spatial denoiser can produce perfectly clean individual frames while still introducing that swimming or flickering effect between frames, particularly around glossy reflections and fine geometric details.

If you’re using UE 5.8, I’d suggest testing the NFOR temporal denoiser in MRG. I’d also render a short sequence with denoising disabled to determine whether the instability originates from the denoiser or the underlying path-traced samples.

What Unreal version are you using, and are your sampling and denoising settings configured directly in MRG or only through the Post Process Volume?

I set the sampling in the level. In the PT node, the MRG has only spatial sampling count. Maybe I should increase the samples per pixel using a C.Var?

That explains a lot. Your screenshot shows 64 spatial samples in MRG, so the 2048 Samples Per Pixel you’ve configured in the Post Process Volume aren’t necessarily what you’re getting in your final render. MRG controls that sampling directly.

You don’t need a CVar to increase it. You can adjust the Spatial Sample Count right there in your Path Traced Renderer node.

I’d start by testing a short sequence at 256 or 512 spatial samples, keeping everything else identical. Then render the same sequence with denoising disabled. That should help determine whether you’re dealing with insufficient sampling or temporal instability introduced by the denoiser.

Also, MRG handles temporal sampling separately through the Sampling Method node, so it’s worth checking that configuration as well.

If you’re on UE 5.8, I’d definitely test the NFOR temporal denoiser under the Denoiser settings of your Path Traced Renderer node. It’s specifically designed to improve temporal consistency in path-traced animations.

Before pushing the sample count much higher, I’d want to isolate the source of the flickering rather than just throwing more samples at it.

What UE version are you running, and which denoiser type is currently selected in MRG?

I’m on 5.8, and my Denoising setting is disabled in MRG. I didn’t configure the sample per pixel in the MRG, I’ll try that and see if i get a better result.

One important detail I noticed in your screenshot… the checkbox on the far left of “Enable Denoiser” is actually the MRG override toggle. Having it unchecked doesn’t necessarily mean denoising is disabled.

In your original screenshot, the denoiser is enabled in the Post Process Volume, so it may still be active during rendering.

Also, your Spatial Sample Count is explicitly overridden to 64 in MRG, meaning your 2048 SPP setting in the Post Process Volume isn’t controlling that render.

Before increasing samples, isolate the issue:

  1. Explicitly override Enable Denoiser in MRG and set its actual value to OFF. Render a short section of the animation at your current 64 spatial samples.

  2. Check whether the swimming disappears or turns into regular sampling noise.

  3. Then test 256 spatial samples with denoising still disabled.

  4. Finally, enable denoising directly in MRG, switch Denoiser Type to Temporal (NFOR), and compare the results.

Like i said ..since you’re on UE 5.8, NFOR is definitely worth testing.

The important thing is to change one variable at a time. If the swimming persists even with denoising explicitly disabled, we can start investigating the lighting, glossy reflections, or geometry instead.

No need to introduce CVars yet.

My RT MRG setup was the problem. After enabling the denoiser (and turning it off) and increasing the samples, I got a better result.