April 15, 2021, 10:54 (GMT) |
Cycles: Implement early stopping for adaptive sampling Stop scheduling path tracing jobs one all pixels did converge. Since the convergence check is done for the entire big tile it is not that visible with regular noise level settings and number of samples. However, still feels like this is proper thing to do, especially for the idea of gradually decreasing error threshold for the viewport rendering. For the GPU there is a single int memory allocated for every invocation of convergence check kernel. Not sure if it gives any measurable difference and whether we'd better avoid such tiny allocations. |
April 15, 2021, 10:53 (GMT) |
Cycles: Fix denoising artifacts with adaptive sampling Need to make sure denoiser input is has consistent number of samples for all pixels, otherwise denoiser might see some areas too dark when they converged. The output of denoiser needs to be scaled back, so that when combined pass is scaled with number of samples n display on or pixel buffer request it gives proper result. While this is technically slower than the previous state of the branch, the number of computations is similar to the master branch. We can optimize some areas: for example by multi-threading OIDN passes creation. Additionally, enable handling of all passes for OptiX. Some code was disabled during development and was never enabled back :( |
April 15, 2021, 10:48 (GMT) |
Cycles: make device queues GPU specific |
April 15, 2021, 10:48 (GMT) |
Cycles: use stream in CUDA queue Any device memory copying and zeroing is also done as part of the stream so we can queue such operations without synchronizing. |
April 15, 2021, 10:04 (GMT) |
bring back type conversion |
April 15, 2021, 09:38 (GMT) |
Fix T87171: Update multi input socket indices When inserting a node on top of a link, the multi input socket indices weren't updated. This fixes that and keeps the relative order of the links the same. Author: Wannes Malfait Reviewed By: Fabian Schempp Differential Revision: https://developer.blender.org/D10969 |
April 15, 2021, 09:34 (GMT) |
Merge branch 'master' into virtual-array-attributes |
April 15, 2021, 09:21 (GMT) |
Geometry Nodes: refactor implicit conversions This refactor simplifies having standalone function pointer that does a single conversion. It also speeds up implicit type conversion of attributes. |
April 15, 2021, 08:59 (GMT) |
Pose Sliding tools improvements ### Executive Summary This patch improves pose sliding tools: Breakdowner, Push, and Relax. The problems with the old tools: - **No UI**. Even though it's clear how the tool works when you move the mouse, there is no visual indication as to the actual scale of the movement required. - **No mouse wrapping**. This means that you have to carefully plan the initial position of the mouse when using the tools, because that impacts which values are available. This makes it hard to use it from the menu, as that forces the mouse to be in a certain position. - **No precision mode** by pressing shift. - **No overshoot protection**, so it's very easy to go below 0% or above 100%. These problems are **all solved in this patch**. ##### Demo video Here {key Shift E} is used to start the Pose Breakdowner. {F9929705} ### Original description **Problem** The existing Push, Relax and Breakdowner tools are great, but the fact that they use the whole area range is less than ideal. In theory, the tools support going beyond 0% and 100% to create an overshoot, but since they use the whole are, you might be blocked by the edges of the screen. **Solution** Set a pixel value as defined distance from 0% to 100% (scales with gui) To indicate that, draw a UI under the cursor. The percentage is now calculated accumulative to enable precision support when holding SHIFT Info about new modifier keys is printed to the workspace status {F9891261} Update 2020_10_12: All lines have outlines now and handle is orange for better readability on white. Update 2021_01_18: Static indicators moved to bottom. tick spacing now every 10% Update 2021_03_14: Remove the slider and replace with a simple percentage indicator. (Cursor not visible in screenshot) Update 2021_04_11: Brought the slider back. Spawns centered at the bottom of the screen {F9929709} By default the percentage is clamped to 0-1. But by pressing E you can enable overshoot. Update 2020_10_12: slider range in overshoot mode is now 150% to better indicate that it can go further Update 2021_03_14: Since the slider was removed, the percentage amount is simply displayed under the cursor Update 2021_04_11: Overshoot now scrolls in place {F9929712} **Limitations and future improvements** As mentioned in the comments below it would be a good idea to write a more general version of the slider to be used in various areas of Blender. **Build** [[ https://blender.community/c/graphicall/dqbbbc/ | Windows build on graphicall ]] **Edit** Split off the operator into it's own patch D9137 Reviewed By: zeddb, brecht, Severin, looch Maniphest Tasks: T81836 Differential Revision: https://developer.blender.org/D9054 |
April 15, 2021, 08:49 (GMT) |
Merge branch 'master' into temp-gpencil-bezier-stroke-type |
April 15, 2021, 08:07 (GMT) |
Cycles: Fix tests compilation error after recent changes |
April 15, 2021, 08:00 (GMT) |
Fix T87356 & T87358: Small multi-input socket issues T87356 occured because last_node_hovered_while_dragging_a_link was not set on node_link_init. The assert in T87358 failed because the sorting operation was called even if the drag link contained a link to another socket. A little one frame jump was caused because frame was refreshed after picking a link and before sorting happened. Reviewer: Hans Goudey Differential Revision: https://developer.blender.org/D10940 |
April 15, 2021, 07:38 (GMT) |
Merge branch 'master' into virtual-array-attributes |
April 15, 2021, 07:37 (GMT) |
Cleanup: rename file Internally we use the name "context (path)" instead of "breadcrumb". This was missing from a rename in the original patch. |
April 15, 2021, 07:35 (GMT) |
Cleanup: move type conversions to separate file |
April 15, 2021, 07:26 (GMT) |
Cycles: Remove pause notification from denoising sample change The pause wait does not check on the denoiser sample, so it was a bit weird to wake up pause loop. Possibly was a copy-paste of the samples update which does need to wake pause loop. |
April 15, 2021, 07:26 (GMT) |
Cycles: Remove background info from Device There shouldn't be a logic on the device level which will make it to change behavior based on whether it is an interactive or offline rendering. The only current use is in the OpenCL device which initialized requested features differently for viewport. This code will either fully fade away or will be redone. |
April 15, 2021, 07:26 (GMT) |
Cycles: Refactor denoiser passes configuration Store them as an individual boolean flags. Should be no functional changes so far, but allows to simplify the following: - Conditional enabling of denoising passes (so that unused passes are not written by the kernel). - Move configuration to the Graph. |
April 15, 2021, 07:26 (GMT) |
Cycles: Conditionally enable denoising passes Allows to avoid memory usage by passes which are not used by the denoising algorithm. |
April 15, 2021, 07:26 (GMT) |
Cycles: Rework denoiser integration The goal is to allow OptiX denoiser when rendering with CPU or CUDA. The Denoiser now can request device to be created if none of the devices configured for rendering is suitable for denoising. This allowed to remove some tricky logic from BlenderSync. Another related change is the move of denoiser parameters from Session to Integrator, allowing to change denoiser settings without doing full session re-creation. Known remaining aspects: - If CUDA is used for rendering try to use same physical device for OptiX denoising. - Optimize data transfer when different Device is used for denoising. - Would also be nice to not restart rendering when it is only start denoising sample is changed. |
|
|
|


Master Commits
MiikaHweb | 2003-2021