August 9, 2016, 01:50 (GMT) |
Cycles: Fix GGX shader after recent changes to numerical stability |
August 9, 2016, 01:50 (GMT) |
Cycles: Remove a few useless temporary files |
August 9, 2016, 01:50 (GMT) |
Cycles: Fix denoising feature matrix norm calculation |
August 9, 2016, 01:50 (GMT) |
Cycles: Fix building after the debug_fpe commit |
August 8, 2016, 19:10 (GMT) |
Cycles: Add denoising option to the Cycles Standalone executable To use it, call it with "./cycles --denoise --samples <sample number> --output <denoised_file.png> <rendered_image.exr>". You need to enter the sample number that the image was rendered with - others will work as well, but might produce artifacts. The input image can be generated by rendering with "Keep denoising data" enabled (denoising itself isn't needed) and saving the result as Multilayer EXR. For now, this is mainly useful for quicker testing without re-rendering and profiling, not so much for regular users. However, the next step will be to implement inter-frame denoising for animations, which will provide a significant quality boost. |
August 8, 2016, 19:09 (GMT) |
Cycles Standalone: Add option to set the tile size |
August 6, 2016, 03:22 (GMT) |
Cycles: Redesign the buffer accesses of the denoising kernel. At first, the denoising kernel just directly accessed the RenderBuffers. However, that introduced some addressing complexity since the filter window might cover multiple tiles, each with a separate buffer. Apart from the addressing overhead, this also made it pretty much impossible to SIMDify the CPU code. When feature prefiltering was added, it changed the buffer addressing. First, it copied the various parts of different buffers into one continuous array. Then, it operated directly on that array. With these changes, the only thing the regular buffer addressing was still needed for was the color image. Now, this commit also copies the color image into the prefiltered buffer. Therefore, it's not really just a prefiltered buffer anymore, but actually contains all the data needed to denoise. This allows to redesign and clean up the kernel-device-interface, which is also done in this commit. Advantages are: - Lower addressing overhead - every pixel is only addressed once to copy the data to the denoising buffer, and once to store the final result - instead of hundreds of accesses per pixel when looping over the filter window. - Lower code complexity - one array with standard scanline addressing makes the code a lot cleaner. - For GPUs: More memory access coherence since the passes are stored in SoA layout instead of AoS (like the regular RenderBuffers are). - For CPUs: Possibility to use SIMD instructions in the future due to the SoA layout. The disadvantage is slightly higher memory usage - 22 floats per pixel instead of 16. This commit doesn't include the CUDA changes yet. |
August 6, 2016, 03:22 (GMT) |
Cycles: Fix potential divide by zero in the area light sampling code |
August 6, 2016, 03:22 (GMT) |
Cycles: Adapt CUDA device to the new denoise buffer architecture |
August 6, 2016, 03:22 (GMT) |
Cycles: Fix wrong array indexing in the feature kernel |
August 6, 2016, 03:22 (GMT) |
Cycles: Implement the Filter Weight functionality For now, the slider defines the weight given to feature pass variances (which now is 2**filter_strength instead of 1). |
August 6, 2016, 03:19 (GMT) |
Cycles: Replace NaNs in the feature passes with zero As soon as any feature pass sample is NaN, every pixel which contains that sample in its filter window will be black in the filtered result. Ideally no NaNs should be generated in the first place, but there are quite a few cases where they are generated in Cycles and now become visible. So, as a temporary fix, NaNs are now replaced with zero when storing the passes. Ideally these NaNs should be fixed for good, of course. |
August 6, 2016, 03:17 (GMT) |
Cycles: Prefilter all feature passes This commit adds prefiltering to all feature passes, instead of just the shadow pass. Feature passes are supposed to be noise-free, but effects like Depth of Field, Motion Blur or slightly glossy shaders could still produce noticable amounts of noise. |
July 27, 2016, 20:36 (GMT) |
Cycles: Fix a memory leak when cancelling a denoised render |
July 27, 2016, 19:43 (GMT) |
Cycles: Fix another cause for NaN normals and a potential divide-by-zero in the background texture |
July 27, 2016, 19:43 (GMT) |
Cycles: Add Debug build option that enables floating point exceptions By enabling the new WITH_CYCLES_DEBUG_FPE, floating point exceptions are enabled in the CPU kernels. That way, the debugger stops as soon as an invalid calculation is performed, which makes it a lot easier to track these issues. Note that the option may cause problems in combination with the --debug-fpe runtime option. |
July 27, 2016, 18:18 (GMT) |
Cycles: Fix a rare divide-by-zero in a fallback sampling code The issue only appeared when the random number happens to be exactly one while a fallback sampling code for shallow paths was being executed. |
July 26, 2016, 01:37 (GMT) |
Merge remote-tracking branch 'origin/master' into soc-2016-cycles_denoising |
July 26, 2016, 01:36 (GMT) |
Render API/Cycles: Add separate "keep highlights" parameter to the end_result function to fix Save Buffers with Denoising |
July 24, 2016, 01:44 (GMT) |
Merge commit '3e05be953f619b78c8721631549f9babb0950f4c' into soc-2016-cycles_denoising |
|