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 .Oct 10 2018, 11:55 AM
Alaska (Alaska) updated the task description. (Show Details)
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.