Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
AgeCommit message (Collapse)Author
2021-04-05Render: faster animation and re-rendering with Persistent DataBrecht Van Lommel
For Cycles, when enabling the Persistent Data option, the full render data will be preserved from frame-to-frame in animation renders and between re-renders of the scene. This means that any modifier evaluation, BVH building, OpenGL vertex buffer uploads, etc, can be done only once for unchanged objects. This comes at an increased memory cost. Previously there option was named Persistent Images and had a more limited impact on render time and memory. When using multiple view layers, only data from a single view layer is preserved to keep memory usage somewhat under control. However objects shared between view layers are preserved, and so this can speedup such renders as well, even single frame renders. For Eevee and Workbench this option is not available, however these engines will now always reuse the depsgraph for animation and multiple view layers. This can significantly speed up rendering. These engines do not support sharing the depsgraph between re-renders, due to technical issues regarding OpenGL contexts. Support for this could be added if those are solved, see the code comments for details.
2021-04-05Cycles: update Light Paths presetBrecht Van Lommel
* Add Fast GI / AO bounces to presets * Add Default preset matching defaults * Add Fast Approximate GI preset * Lower Full GI depths to 32
2021-04-04Cycles: make AO bounces settings more discoverableBrecht Van Lommel
* Move out of Simplify panel, into Light Paths > Fast Global Illumination * Add separate boolan setting to enable/disable it separate from Simplify * Default AO bounces to 1 * Put ambient occlusion distance in this panel as well
2021-04-01Cleanup: spellingCampbell Barton
2021-04-01Fix "unused variable" warning when compiling without nanovdbSebastian Parborg
2021-04-01Cycles: light spread importance sampling for rectangular area lightsBrecht Van Lommel
Compute a subset of the area light that actually affects the shading point and only samples points within that. It's not perfect as the real subset is a circle instead of a rectangle, and the attenuation is not accounted for. However it massively reduces noise for shading points near the area light anyway. Ellipse shaped area lights do not have this importance sampling, but do not have solid angle importance sampling either. Ref D10594
2021-04-01Cycles: add a spread setting for area lightsMatteo Falduto
This simulates the effect of a honeycomb or grid placed in front of a softbox. In practice, it works by attenuating rays coming off-angle as a function of the provided spread angle parameter. Setting the parameter to 180 degrees poses no restrictions to the rays, making the light behave the same way as before this patch. The total light power is normalized based on the spread angle, so that the light strength remains the same. Differential Revision: https://developer.blender.org/D10594
2021-04-01Fix Cycles build error with "make developer" on some CPUsNikita Sirgienko
The combination of building unit tests and WITH_CYCLES_NATIVE_ONLY did not correctly detect when AVX/AVX2 support is available. Differential Revision: https://developer.blender.org/D8201
2021-04-01Libmv: Add clang-format for third party sourcesSergey Sharybin
Got ignored in the initial commit of clang-format support to the Libmv.
2021-03-31Alembic procedural: fix missing update when editing shadersKévin Dietrich
2021-03-31Alembic procedural: comment, speficy the behavior of a functionKévin Dietrich
2021-03-31Alembic procedural: cleanup, make add_object privateKévin Dietrich
This should only be accessed from within the procedural.
2021-03-31Alembic procedural: fix out of bound access when editing object properties ↵Kévin Dietrich
or shaders The index_data_map was not cleared when clearing a cache, so this would just append the new correct data to the end of the array instead of overwriting it, which would cause us to then use outdated indices.
2021-03-30Fix T87007: Cycles Background not updated if strength is initially nullKévin Dietrich
When the strength is initially set to zero, the shader graph is optimized out to remove any node which will not be executed because of this, which removes pretty much every single node, except for the output. As the graph is empty, the world shader is made invisible to rays so it is not evaluated in the kernel. However, when the strength is then modified, the Background is not updated as the modification happens on the Shader Node and not on the Background Node, so it is never tagged as modified. To fix this, we need to tag the Background as modified when its shader is also modified so the Kernel data is properly updated. Regression caused by rBbbe6d44928235cd4a5cfbeaf1a1de78ed861bb92.
2021-03-30Cycles: Do not allocate tile buffers on all devices when peer memory is ↵Patrick Mours
active and denoising is not Separate tile buffers on all devices only need to exist when denoising is active (so any overlap being rendered simultaneously does not write to the same memory region). When denoising is not active they can be distributed like all other memory when peer memory support is available. Reviewed By: brecht Differential Revision: https://developer.blender.org/D10858
2021-03-30Cycles: disable NanoVDB for AMD OpenCLBrecht Van Lommel
It is causing issue with AMD OpenCL drivers, due to a potential driver bug. Ref T84461
2021-03-27Win32: Allow return from fullscreen to maximizedVincent Blankfield
If window is maximized when toggling fullscreen, go back to maximized when done. Differential Revision: https://developer.blender.org/D10813 Reviewed by Harley Acheson
2021-03-26Fix T86859: Allow covering of Taskbar when Fullscreen from MaximizedVincent Blankfield
When the window is already maximized allow covering Windows Taskbar when toggling fullscreen. Differential Revision: https://developer.blender.org/D10811 Reviewed by Harley Acheson
2021-03-26Cleanup: redundant expressionKévin Dietrich
2021-03-26Fix T86939: Cycles objects bounds not updated when transforming objectsKévin Dietrich
As a rather premature optimization from rBbbe6d4492823, Object bounds were only computed when either the Object or its Geometry were modified. Prior to rB42198e9eb03b, this would work, as the Geometry was tagged as modified if the Object's transform was also modified. Since this tagging is not done anymore due to side effects, and since at the time bounds are computed Objects were already processed and tag as unmodified, the check on the modified status was always false. For now remove this check, so the bounds are always unconditionally updated. If this ever becomes a performance problem in large scenes with motion blur, we will then try to find a way to nicely optimize it. This would only affect BHV2 as OptiX and Embree handle object bounds themselves.
2021-03-26Cleanup: use code doxy command for Python snippetCampbell Barton
2021-03-26Cleanup: clang-formatCampbell Barton
2021-03-25Geometry Nodes: rename attribute domainsJacques Lucke
This patch renames two domains: * `Polygon` -> `Face` * `Corner` -> `Face Corner` For the change from `polygon` to `face` I did a "deep rename" where I updated all (most?) cases where we refere to the attribute domain in code as well. The change from `corner` to `face corner` is only a ui change. I did not see a real need to update all code the code for that. It does not seem to improve the code, more on the contrary. Ref T86818. Differential Revision: https://developer.blender.org/D10803
2021-03-24Alembic procedural: deduplicate cached data accross framesKévin Dietrich
Currently the procedural will add an entry to the cache for every frame even if the data only changes seldomly. This means that in some cases we will have duplicate data accross frames. The cached data is now stored separately from the time information, and an index is used to retrieve it based on time. This decoupling allows for multiple frames to point to the same data. To check if two arrays are the same, we compute their keys using the Alembic library's routines (which is based on murmur3), and tell the cache to reuse the last data if the keys match. This can drastically reduce memory usage at the cost of more processing time, although processing time is only increased if the topology may change.
2021-03-24Cleanup: clang-tidy errors.Jeroen Bakker
2021-03-24Cleanup: unused variableKévin Dietrich
2021-03-24Fix T86601: Cycles accumulates displacement when transforming an ObjectKévin Dietrich
In order to update the BVH when only the transformations are changing, we would tag the Object's Geometry as modified. However, when displacement is used, and the vertices were not themselves modified, this would cause us to redo the displacement on already displaced vertices. To fix this, use a specific update flag for detecting and notifying that transformations were modified. Regression caused by rBbbe6d44928235cd4a5cfbeaf1a1de78ed861bb92.
2021-03-24Cleanup: remove stdio.h header from MEM_guardedalloc.hCampbell Barton
This was included for `FILE *` which isn't used in the header. Ref D10799
2021-03-23Fix T86567: Cycles crashes when playing back animated volumesKévin Dietrich
The crash is caused by an out of bound access in the kernel due to missing data update when a Volume's voxel data changes. Although the previous bounding mesh is cleared, the Volume Node was not tagged as modified, and therefore never rebuilt. To fix this, tag the Geometries (not just Volumes, to be more robust) as modified in Geometry.clear(). Regression caused by rBbbe6d44928235cd4a5cfbeaf1a1de78ed861bb92.
2021-03-23Nodes: Add Refract and Faceforward functions to Vector Maths nodesCharlie Jolly
Cycles, Eevee, OSL, Geo, Attribute Based on outdated refract patch D6619 by @cubic_sloth `refract` and `faceforward` are standard functions in GLSL, OSL and Godot shader languages. Adding these functions provides Blender shader artists access to these standard functions. Reviewed By: brecht Differential Revision: https://developer.blender.org/D10622
2021-03-22Fix T86591: Tracking backwards is slowerSergey Sharybin
The root of the issue was caused by the PredictMarkerPosition() always returning false when tracking backwards. This was making it so tracker always had to run brute initialization, which is an expensive operation. From own timing here: - Tracking forward takes 0.667637 seconds - Tracking backward used to take 2.591856 seconds - Tracking backward now takes 0.827724 seconds This is a very nice speedup, although the tracking backwards is still somewhat slower. Will be investigated further as part of a regular development.
2021-03-22Cleanup: clang-formatCampbell Barton
2021-03-22Revert "Disable clang-format for objective-C bits in GHOST."Campbell Barton
This reverts commit 1cb9612d736f8513d7d4cfc01da6c4e386efcc4f. We can now rely on the clang-format version as it's distributed with pre-compiled binaries.
2021-03-22Cleanup: disable clang-format for 'intern/libmv/third_party' headersCampbell Barton
2021-03-21Cleanup: spelling, doxygen comment formattingCampbell Barton
2021-03-21Fix T86643: Win32 Entering Full Screen While MaximizedHarley Acheson
SetWindowPos must be called after SetWindowLongPtr in order to see changes to window frame style. Differential Revision: https://developer.blender.org/D10756 Reviewed by Ray Molenkamp
2021-03-19Fix Cycles NaN assert in random walk SSS due to very small throughputBrecht Van Lommel
Now terminate if there are many bounces and the throughput gets so small that we get precision issues.
2021-03-18Cleanup: spellingCampbell Barton
2021-03-17Nodes: Add support to mute node wiresCharlie Jolly
This patch adds the ability to mute individual wires in the node editor. This is invoked like the cut links operator but with a new shortcut. Mute = Ctrl + Alt Cut = Ctrl Dragging over wires will toggle the mute state for that wire. The muted wires are drawn in red with a bar across the center. Red is used in the nodes context to indicate invalid links, muted links and internal links. When a wire is muted it exposes the original node buttons which are normally hidden when a wire is connected. Downstream and upstream links connected using reroute nodes are also muted. Outside scope of patch: - Add support for pynodes e.g. Animation Nodes - Requires minor change to check for muted links using the `is_muted` link property or the `is_linked` socket property. Maniphest Tasks: T52659 Differential Revision: https://developer.blender.org/D2807
2021-03-16Revert removal of lambda usage for Python RNA callbacksCampbell Barton
This reverts commits - 476be3746e85b4891189c8d480501905b9400c66 - 8d50a3e19e025ef470132e7edadd7b180db833f5 - 08dbc4f996e4e95f3ab64f7bb3e1193700c585f5 (partially).
2021-03-15Fix T86121: Cycles Attribute returning wrong results with OSLBrecht Van Lommel
Fix uninitialized variable in the OSL shader.
2021-03-15Fix (apparently harmless) Cycles asan warningsBrecht Van Lommel
2021-03-15Cycles: optimize ensure_valid_reflection(), reduces render time by about 1%Mikhail
This is an implementation that is about 1.5-2.1 times faster. It gives a result that is on average 6° different from the old implementation. The difference is because normals (Ng, N, N') are not selected to be coplanar, but instead reflection R is lifted the least amount and the N' is computed as a bisector. Differential Revision: https://developer.blender.org/D10084
2021-03-15Fix T56925: Cycles banding artifacts in dense volumesMikhail Matrosov
Offset the starting point of segments by a random amount to avoid the bounding box shape affecting the result and creating artifacts. Differential Revision: https://developer.blender.org/D10576
2021-03-15Fix Cycles rendering crash on OpenBSDBrecht Van Lommel
Static initialization order was not guaranteed to be correct for node base types. Now wrap all initialization in accessor functions to ensure the order is correct. Did not cause any known bug on Linux/macOS/Windows, but showed up on this platform.
2021-03-15Fix Libmv tests after recent fixSergey Sharybin
Forgot to update regression test to the changed API.
2021-03-15Fix T86262: Tracking backwards fails after gap in trackSergey Sharybin
The issue was caused by a prediction algorithm detecting tracking the wrong way. Solved by passing tracking direction explicitly, so that prediction will always happen correctly regardless of the state of the Tracks context.
2021-03-15Refactor Libmv C-API motion model conversionSergey Sharybin
Mode to an own utility function and guard missing enumerator values with a LOG(FATAL).
2021-03-15Cleanup: Spelling in Libmv commentsSergey Sharybin
2021-03-14CMake/guardedalloc: add header file to TEST_SRCAnkit Meel