April 9, 2021, 15:36 (GMT) |
Cycles: Use adaptive sampling division in the film kernel Matches the pass data access in the buffers.cpp. Unfortunately, the code is not currently running because there are no adaptive sampling passes added to the viewport render. Will work on enabling required passes in the viewport next. |
April 9, 2021, 15:36 (GMT) |
Cycles: Use more const qualifiers in the film kernel |
April 9, 2021, 15:36 (GMT) |
Cycles: Fix adaptive sampling possibly being false enabled Add an explicit check with the configuration rather than relying on the sampling pattern. |
April 9, 2021, 15:36 (GMT) |
Cycles: Streamline naming in the film kernel No functional changes. Indicated possible issue with the difference in stride in the render buffer and in the display half-float buffer. |
April 9, 2021, 15:36 (GMT) |
Cycles: Use more clear variable name The offsets are calculated using stride during update, but semantically those are offsets. |
April 9, 2021, 15:36 (GMT) |
Cycles: Remove unused adaptive sampling settings from KernelIntegrator |
April 9, 2021, 15:36 (GMT) |
Cycles: Unify terminology/naming Follow Cycles convention of using get/set as prefix. This is the proper way ;) |
April 9, 2021, 13:32 (GMT) |
Cycles: Further improvements to the viewport rendering The idea is to schedule more samples at a lower resolution, which gives more usable visual feedback. For example, The Junk Shop scene becomes a bit less resolution but is way less noisy (almost no black pixels) while steel feeling interactive. Currently schedule 4 samples during navigation, 2 samples for the resolution which is the previous to the final one. When denoising is enabled during navigation, schedule single sample (which makes it so higher resolution will be rendered). This is because both denoisers we have behave better on more noisy image but on higher resolution. Additionally, lower the update rate in viewport. Non-trivial scenes can not keep up 60fps without dropping resolution too much. So prefer less often updates but have more clean updates during navigation. |
April 9, 2021, 13:27 (GMT) |
Fix wrong MIS weights for mixed BSDF and BSSRDF |
April 9, 2021, 13:27 (GMT) |
Fix subsurface scattering not working with bump mapping in new integrator |
April 9, 2021, 13:27 (GMT) |
Cycles: store ray differentials as scale instead of vector For bump mapping at least this makes little visual difference, and reduces memory usage and access cost on the GPU. A further optimizations could also make the differentials in ShaderData smaller. Ray differentials for NDC coordinates are disabled by this, to be brought back later. |
April 9, 2021, 13:27 (GMT) |
Fix missing object light visibility flags in new integrator Do it as part of BSDF evaluation now, with advantage that we can skip evaluating some BSDFs this way. |
April 9, 2021, 13:27 (GMT) |
Fix wrong MIS weights leading to fireflies Must keep track of distance to where the BSDF was sampled. |
April 9, 2021, 13:27 (GMT) |
Cycles: restore ray differentials in new integrator Accept the extra memory usage for now, we'll try to compress these later. This fixes bump mapping for more accurate comparisons. |
April 9, 2021, 11:34 (GMT) |
Cycles: Fix transmission pass leaking into Combined Was happening when there are transmission objects in the scene and the transmission passes are not enabled. The pass offset in the KernelFilm were left at 0, making it so `kernel_accum_light` believed the pass is to be written, and the writing was happening into the combined pass. Maybe we should initialize all passes offsets to PASS_UNUSED, so that on an incorrect usage we'll have a memory error instead of silently corrupting the combined pass? This change fixes the startup file of myself, which is a glass monkey on a plane. |
April 9, 2021, 07:25 (GMT) |
Cycles: Fix missing updates with adaptive sampling Was a mistake in the calculations, which was delaying the update for too long and did not guarantee and update at the end of render. |
April 8, 2021, 17:20 (GMT) |
Cycles: Partial fix for the viewport passes Blender's addon should use same constants as the PassType. One thing which is still not working in viewport is Emission and Background passes when there is an object with Glass shader: the object is still shaded. The final F12 render of the Emission and background is correct. So not immediately clear what's the issue. |
April 8, 2021, 15:42 (GMT) |
Cycles: Fix threading issues in the PathTrace render cancel The actual flow is a bit of a mystery to me, but there were cases when `PathTrace::cancel()` was waiting for the `PathTrace::render()` to finish, but the `render_cancel_.is_requested` was cleared so that the render_pipeline was not quitting. The new code seems more logical to me, but really wouldn't mind a second pair of eyes here. |
April 8, 2021, 13:06 (GMT) |
Cycles: Fix wrong OpenGL context manipulation in some cases When the BlenderSession is destructed from an initialization of a temporary are the current active context is window, not the draw manager. Made it so context release/activation goes correct in this case. Steps to reproduce an original issue: - Compile in debug mode, so that asserts are active. - Start Cycles viewport render. - Hit shortcut to open file (Cmd-O / Ctrl-O). |
April 8, 2021, 13:06 (GMT) |
Cycles: Fix samples scheduling on retina screens |
|