Page MenuHome

Correlated Multi-jitter viewport rendering inconsistencies
Closed, ResolvedPublic

Description

System Information
CPU: Ryzen R5 2500U
GPU : Vega 8
RAM: 8GB
OS: Windows 10 64bit 1803

Notes: All tests were done on the CPU. There may be a difference with GPU, but I can't get the GPU to stably work.

Blender Version
Broken:
Blender 2.79b
Blender 2.79 Daily build (blender-2.79-76f640c27d8-win64) - Oct 10 2018
Blender 2.8 (blender-2.80-1dd3b93d2f9-win64) - Oct 10 2018

Short description of error
When these things are true, viewport render results appear different from expectations (Final render doesn't appear to have these issues):

  1. Branched Path Tracing is enabled
  2. Viewport AA samples are set to 0
  3. A materials samples is set to any even number greater than 1 (E.G. Diffuse = 2) (Note: Only the materials with their values greater than 1 and are even will have this effect. E.G, Diffuse at 2 and Glossy at 3 will give you expected results for glossy materials but not diffuse.)
  4. Rendering Pattern is set to Correlated Multi-Jitter

Here's a few pictures:



Here's a few Blend files to test with (I've used interior scenes as they show the effect quite well):
Blender 2.8:

Blender 2.79b and 2.79 Master:

Event Timeline

Alaska (Alaska) renamed this task from Correlated Multi-jitter rendering inconstancy to Correlated Multi-jitter rendering inconsistency .
Alaska (Alaska) removed Brecht Van Lommel (brecht) as the assignee of this task.
Alaska (Alaska) renamed this task from Correlated Multi-jitter rendering inconsistency to Correlated Multi-jitter viewport rendering inconsistencies .
Sebastian Parborg (zeddb) triaged this task as Confirmed, Medium priority.

Had to get rid of some asserts before this rendered on my 2.8 debug build:
blender/intern/cycles/kernel/../kernel/kernel_jitter.h:195: void ccl::cmj_sample_2D(int, int, int, float*, float*): Assertion s < N' failed.`
blender/intern/cycles/kernel/../kernel/kernel_jitter.h:169: float ccl::cmj_sample_1D(int, int, int): Assertion s < N' failed.`

Don't know if they are relevant or not. But I will mention them nonetheless.

I also observe the same behavior with the latest blender beta.

With CMJ it shouldn't be possible to set samples to 0, as it requires a fixed number of samples to get good stratification. Only Sobol is suitable for rendering with an undetermined number of samples.

So this is mainly a UI / data validation issue.