May 19, 2021, 08:15 (GMT) |
Cycles X: Make shadow catcher approximation more explicit Only affects internal API, the user level stays unchanged. Just replacing some implicit decisions in a generic code path with something what is more explicit. |
May 19, 2021, 08:15 (GMT) |
Cycles X: Move Pass to its own file While doing so found that the pass type enum could have double amount of entries: items are added when initializing pass node and when setting up film's display pass enum. |
May 19, 2021, 08:15 (GMT) |
Cycles X: Move actual pass type logic outside of pass accessor Keeps the accessor free from tricky logic, allowing to make more comprehensive decisions based on various scene settings. Differential Revision: https://developer.blender.org/D11293 |
May 19, 2021, 08:15 (GMT) |
Cleanup: Remove unused pass stride accessor in Cycles X Unused function, which usage was actually limited: the stride was only correct after device update. |
May 18, 2021, 15:08 (GMT) |
Cycles X: Implement early cancel in GPU rendering Allow the GPU rendering to stop rendering before all scheduled paths has been terminated. This significantly lowers latency of the viewport navigation. With some files from the Sprites Fright project the time spend in the `PathTrace::cancel()` is reduced from 0.6 to below 0.01 sec. Differential Revision: https://developer.blender.org/D11286 |
May 18, 2021, 08:54 (GMT) |
Fix bump and displacement in Cycles X Those got accidentally broken by D11132 (and corresponding commit). The `object_inverse_dir_transform()` needs to be adjusted so that it gives correct result for objects which do not have motion (similar to `object_dir_transform()`). Differential Revision: https://developer.blender.org/D11241 |
May 18, 2021, 08:52 (GMT) |
Fix possible NaN throughput in Cycles random walk Based on asymptotic values of formulas when diffuse length is reaching 1 the throughput will be going to 0. So terminate the path early on without causing numerical issues. Just something I've notices with the Junk Shop scene while running debugger for something else. Differential Revision: https://developer.blender.org/D11237 |
May 18, 2021, 08:51 (GMT) |
Merge branch 'master' into cycles-x |
May 17, 2021, 16:15 (GMT) |
Cycles X: Remove unused pointer alignment query Was used by NLM denoiser. Removing to make it easier to possibly extend to the new devices. Reviewed By: brecht Differential Revision: https://developer.blender.org/D11275 |
May 17, 2021, 13:18 (GMT) |
Cycles X: Use queue for data transfer in naive GPU update Run into this code while looking into the following issue: when using non-display GPU and OpenImageDenoiser in viewport sometimes during navigation the viewport goes blank. This change seems to either fix this issue (although, not entirely sure why, because from my understanding all the calls were already properly synchronized). In any case, using a queue for data transfers and kernel is more correct way to go. If the issue described above ever comes back we will dig deeper. |
May 17, 2021, 09:46 (GMT) |
Fix possible race condition in Cycles X Not a fix easily measurable by artists, but something what is correct from multi-threaded environment. Update number of samples in the scheduler in a safe place, where we know that scheduler is not accessing the value. |
May 17, 2021, 08:32 (GMT) |
Merge branch 'master' into cycles-x |
May 14, 2021, 08:17 (GMT) |
Merge branch 'master' into cycles-x |
May 14, 2021, 07:43 (GMT) |
Fix OIDN denoiser in Cycles X after recent refactor |
May 12, 2021, 16:14 (GMT) |
Fix shadow approximation for combined pass in Cycles X No need to take alpha into account when averaging: it does not contain light information. Was causing non-black shadow on scene without lights. |
May 12, 2021, 14:10 (GMT) |
Cycles X: Experiment with progressively lowering noise in viewport The idea is make it so in viewport all pixels are uniformly noisy, and the noise gradually becomes lower and lower. This is like replacing viewport samples with smarter adaptive sampling. Currently, rendering starts with noise threshold of 0.4, and once majority of pixels did converge the noise threshold gets halved, until the configured threshold is reached. The final result of viewport rendering should be almost the same as prior to the patch, but because of extra box filtering on a more sparse pixel sets there could be some differences. Especially visible with the active pixels overlay in the case when pixels did not converge to the final noise floor. From the benchmarks there seems to be no performance loss. Differential Revision: https://developer.blender.org/D11088 |
May 12, 2021, 12:56 (GMT) |
Cycles X: Switch sample count pass from float to uint This way we will never run into rounding issues when relying on a per-pixel sample count value. There is some code duplication between the film conversion and the pass accessor. Ideally we will de-duplicate the per-pixel processing logic, but is better if that happens as a separate refactor. |
May 12, 2021, 12:56 (GMT) |
Cycles X: Make converge check return number of active pixels Currently no functional changes, but allows to implement different adaptive sampling filtering: for example, the one which progressively lowers noise floor. From benchmarks on RTX 6000 there is no performance impact. |
May 12, 2021, 12:56 (GMT) |
Cycles X: Allow adding samples to pixel The idea is to be able to resume sampling pixel after it "skipped" some of the scheduled tiles due to convergence. This is a bit weak concept, but is the most straight forward to implement. This will be needed for the progressive noise floor feature. The current implementation is relying on the fact that the maximum number of samples will not exceed floating point precision: for the range of 0 to 2^24 the worst prevision of the single floating precision is 1. To be more robust for all possible GPUs which might have precision issues this will be changed in the followup commit. |
May 12, 2021, 12:54 (GMT) |
Cycles X: Optionally approximate shadow in matte pass This change makes it so that combined pass (from the render result point of view) will contain both synthetic objects and shadows when the Shadow Catcher pass is not enabled. This brings back behavior of the shadow catcher, possibly bringing back some of workflows when synthetic object have to have their shadows in the same pass. It also makes it so perceptually the shadow catcher always work. The approximation is a black transparency (without color), although is more accurate than in previous implementation of the shadow catcher. Currently is only implemented for the final render. The viewport needs more investigation about whether its possible to have preview of the final accurate shadow catcher. Differential Revision: https://developer.blender.org/D11232 |
|