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/source
AgeCommit message (Collapse)Author
2021-04-14Geometry Nodes: Realize instances when applying modifiersHans Goudey
The fact that geometry from instnances isn't realized when applying a nodes modifier can be very confusing, especially for new users. Nodes themselves realize geometry instances implicitly whenever they need to. We also currently make instances real and convert points to mesh when a modifier is added after the nodes modifier. With this commit, we simply do the same thing when applying the modifier. There are a few downsides though: - This can be an extremely heavy operations in some cases where geometry nodes is used to instance heavy geometry. - We will still have the issues with materials, since instances use materials from their original objects, but real geometry uses materials from the modifier object. It was decided to live with the potential performance downsides for now, the idea is the upsides of the change are more important, and people making complicated setups will be more likely to know not to apply the modifier. In the future there could be a warning if it's necessary though. Ref T87083
2021-04-14GPencil: Invert color offsetting for Single and Object modeAntonio Vazquez
Now, instead to offset the stroke color to make it visible over fill, the stroke keeps the original color and the fill is offset. Related to the issue in T87406.
2021-04-14Fix T87406: Stroke color when using object color modeFalk David
The color of the strokes was shifted when using `Single Color` or `Object Color`in Solid Display Mode. This was originally done so that it was still possible to differentiate strokes and fills. The fix allows for a completly flat shading by checking if the Lighting Mode is set to `Flat`. If it is, then the colors are not shifted for the strokes and everything will use the same color. Reviewed By: antoniov, fclem Maniphest Tasks: T87406 Differential Revision: https://developer.blender.org/D10957
2021-04-14Geometry Nodes: Add domain and data type to attribute searchHans Goudey
This patch adds domain and data type information to each row of the attribute search menu. The data type is displayed on the right, just like how the list is exposed for the existing point cloud and hair attribute panels. The domain is exposed on the left like the menu hierarchy from menu search. For the implementation, the attribute hint information is stored as a set instead of a multi-value map so that every item (which we need to point to descretely in the search process) contains the necessary data type and domain information by itself. We also need to allocate a new struct for every button, which requires a change to allow passing a newly allocated argument to search buttons. Note that the search does't yet handle the case where there are two attributes with the same name but different domains or data types in the input geometry set. That will be handled as a separate improvement. Differential Revision: https://developer.blender.org/D10623
2021-04-14FFmpeg: Adjust default proxy settingsRichard Antalik
GOP size and quality are adjusted for h264 codec. These new values are based on result of benchmark on 9 random files: https://docs.google.com/spreadsheets/d/1nOyUGjoVWUyhQ2y2lAd8VtFfyaY1wQNGj1krCCNbk7Y/edit?usp=sharing Reducing quality to 50 reduces proxy filesize by about 2x on average and has no significant impact on decoding performance. Increasing GOP size from 2 to 10 also reduces proxy filesize 2x-3x while scrubbing is only about 8% slower. It is still around 100FPS with 1920x1080 media. This is unfortunately about 50% slower than MJPEG, but this can be improved with `fastdecode` tune applied to libx264 encoder Quite surprisingly h264 codec presets had little influence on proxy building performance as well as proxy filesize. So far it looks that FFmpeg does initialize encoder in different way then Blender. This applies mot only for presets but for tune and profile libx264 setting. Once this issue is resolved, performance of proxies may be optimized further. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10897
2021-04-14Fix T87479: GPencil SVG export outside of cameraFalk David
When trying to export a GPencil object to SVG from outside the camera view, the expoted file would contain invalid data. This was because the calculation of the bounding box did not have any objects to iterate over. The fix makes sure we create the object list before trying to calculate the bounding box. Reviewed By: antoniov Maniphest Tasks: T87479 Differential Revision: https://developer.blender.org/D10975
2021-04-14Fix (unreported) compositor resolution propagation broken by some nodesManuel Castilla
Some operations may use no preferredResolution ({0, 0}) when calling determineResolution on inputs to check if they have resolution on their own. See MixOperation or MathOperation determineResolution implementation. In such cases {0, 0} resolution ends up being set when an input doesn't have own resolution, breaking propagation of the original preferredResolution. They don't mean to set it as resolution, it's just a check. This patch only allows to set valid resolutions (>0). When it's 0 it may be understood as "No preferred or determined resolution" so it should not be set to give output operations another chance of finding a proper resolution by calling determineResolution again with a different preferredResolution. Test file: {F9932526} Reviewed By: #compositing, jbakker Differential Revision: https://developer.blender.org/D10972
2021-04-14Cleanup: remove unused BLANK_PYTHON_TYPE defineCampbell Barton
2021-04-14Cleanup: spellingCampbell Barton
2021-04-13Fix T78803: Bad widget drawing with the R600g driverOmar Emara
The SB back-end optimizer for the mesa R600g driver corrupts the vertex shader for widget drawing. This will not be fixed upstream because SB is getting replaced as part of the new NIR path. This was thought to be an issue with instancing and an attempted fix was submitted in D8374, but it did not fix the issue. This patch reimplements the array look-up part of the code using switch case as a workaround and removes the old workaround implemented as part of D8374. Reviewed By: Clement Foucault Differential Revision: https://developer.blender.org/D10967
2021-04-13Nodes: Tooltip for Group Input propertiesFabian Schempp
With this patch, users can define custom tooltips for the exposed properties of their Geometry Nodes Groups. Currently this custom tooltips are only used in the modifier panel, but its a long term goal to use it in the node editor. Reviewer: Hans Goudey Differential Revision: https://developer.blender.org/D10884
2021-04-13Object: Enable transfer mode functionality for switching objects in Sculpt ModePablo Dobarro
This implements the changes discussed in T87134 for including switch object funcionality in 2.93. This includes: - Remove the switch object operator experimental option - Remove the option for switching objects in Edit Mode. - Rename switch_object to transfer_mode. - Enable the operator only in sculpt mode. - Expose the operator in the Sculpt menu with an eyedropper modal option. On later releases, we could revisit enabling the operator in other mode and object types as well as its place in the UI. Reviewed By: JulienKaspar, JacquesLucke Differential Revision: https://developer.blender.org/D10953
2021-04-13Revert 87aa514611b9: Removal of Lock Camera Gizmo ButtonHarley Acheson
Differential Revision: https://developer.blender.org/D10968 Reviewed by Julian Eisel
2021-04-13Fix T77330, T81704: Spline IK doesn't preserve bone scale correctlySebastian Parborg
Previously, the bone position outside of "fit to curve length" mode was incorrect. It assumed that the curve was completely straight with no bends or turns. This would lead to bones being scaled down as their final position would be servery underestimated in some cases. The solution is to do a sphere -> curve intersection test to see where to put the bones while still preserving their length. As we are using the tessellated curve data this essentially boils down to us doing a sphere -> line intersection check. Reviewed By: Sybren Differential Revision: http://developer.blender.org/D10849
2021-04-13Spreadsheet: rename Point to VertexJacques Lucke
Ref T86821. Differential Revision: https://developer.blender.org/D10962
2021-04-13Geometry Nodes: realize instances in subdivide nodeJacques Lucke
This makes it consistent with the Subdivision Surface node.
2021-04-13Cleanup: sort cmake file listsCampbell Barton
2021-04-13Cleanup: redundant struct declarationsCampbell Barton
2021-04-13Fix snap gizmo flickering while draggingCampbell Barton
Ignore click-drag for non-mouse button drag events Alternative to fix issue detailed in D10886.
2021-04-13Cleanup: preview rendering, push bContext a bit further down the call stackSybren A. Stüvel
Pass `bContext *C` a bit further down the call stack, to prevent exploding the number of parameters of `ED_preview_icon_render()`. An upcoming change will require access to yet another context member, and this can now be done without adding yet another parameter. No functional changes.
2021-04-13Fix T71960: Malformed .bmp files lead to crashJesse Y
Adds appropriate checks/guards around all the untrusted parameters which are used for reading from memory. Validation: - All the crashing files within the bug have been checked to not causes crashes any longer> - A handful of correct .bmp were validated: 3 different files at each of 1, 4, 8, 24, 32 bpp depth along with a random variety of other 24 bpp files (around 20 in total). - ~280 million iterations of fuzzing using AFL were completed with 0 crashes. The old code experienced several dozen crashes in first minutes of running {F8584509}. Ref D7945
2021-04-13Motion Tracking: setting Keyframe A & B was not updating UI indicatorsPhilipp Oeser
Entering the numbers in the keyframe field was not triggering a viewport update, so the little green lines down in the cache area were only change when the user e.g. changed the frame. Now send appropriate notifiers. Issue spotted in T86456 by sebastian_k. Maniphest Tasks: T86456 Differential Revision: https://developer.blender.org/D10963
2021-04-13Fix compile error: Missing include pathsFalk David
rB8d9fd0427dd6 added the `WITH_GMP` definition but did not append the include paths.
2021-04-13DNA: support int8_t type in DNA structsJacques Lucke
Differential Revision: https://developer.blender.org/D8908
2021-04-13Fix T87400: GPencil change Select Alternate defaultsAntonio Vazquez
Now, the Unselect Ends is disabled by default.
2021-04-13PyAPI: support retrieving the exception when running a stringCampbell Barton
- Optionally get the error as a single line. - Support access the error as an allocated string. - PyC_ExceptionBuffer_Simple was always printing to the `stdout` while PyC_ExceptionBuffer didn't, now either print to the output. Without this, callers are unable to do anything with the error string.
2021-04-13Cleanup: Nodes: Use consistent errors for nodes built without featuresHans Goudey
2021-04-13Cleanup: Use C++ types in object_dupli.ccHans Goudey
Using alloca in C++ is not recommended, especially when we have the blender::Array type that can contain an inline buffer.
2021-04-12UI: Use Consistent name for select mirrorAaron Carlisle
This commit cleans up the RNA names of select mirror operators so that they are all "Select mirror". This makes the select menu in edit/pose mode consistent regardless of object type. Differential Revision: https://developer.blender.org/D7356
2021-04-12Fix T87283: crash with persistent data and motion blurBrecht Van Lommel
2021-04-12Cleanup: fix address sanitizer warningBrecht Van Lommel
2021-04-12UI/Nodes: Improve feedback when adding node fails (e.g. on drag & drop)Julian Eisel
This is especially useful when trying to add a node group instance, e.g. via drag & drop from the Outliner or Asset Browser. Previously this would just silently fail, with no information why. This is a source of confusion, e.g. earlier, it took me a moment to realize I was dragging a node group into itself, which failed of course. Blender should always try to help the user with useful error messages. Adds error messages like: "Nesting a node group inside of itself is not allowed", "Not a compositor node tree", etc. Adds a disabled hint return argument to node and node tree polling functions. On error the hint is reported, or could even be shown in advance (e.g. if checked via an operator poll option). Differential Revision: https://developer.blender.org/D10422 Reviewed by: Jacques Lucke
2021-04-12Previews: allow undo'ing datablock preview generationSybren A. Stüvel
Allow users to undo the effect of the "Generate Preview" operator in the asset browser (`ED_OT_lib_id_generate_preview`). Without this, the button is too dangerous.
2021-04-12UI: Fix a few RNA description stringsDamien Picard
A few strings describing RNA objects were wrong, including copy/paste errors, spelling and case. Reviewed By: Blendify Differential Revision: https://developer.blender.org/D10899
2021-04-12Fix unreported: Flat Surface objectsGermano Cavalcante
Before rBf674976edd88, the flag indicating whether a curve was 2D or 3D was ignored by Surfaces objects. So it can be said that Surfaces objects were always 3D. We could remove updates to 2D on Surface objects, so the behavior is identical to what it was before. But this would also cause the return of `data.dimensions` to be misleading, complicate the code a bit and add a micro overhead. So the solution here is just to init all Surface objects as 3D. Surface objects can now be constrained to 2D with the command: ``` data.dimensions = '2D' ```
2021-04-12Fix T74680: Incorrect mixing in Glare nodeSzymon Ulatowski
The mixing function was designed to give correct results for Mix values of -1, 0, and +1, but the behavior between these points was not linear. This is unavoidable, because the function depends on both Mix and Mix^2 (by multiplying value and mf) so they could not cancel out completely. The new formula simply calculates the weighted sum without trying to invent a smooth function. Value for MixGlareOperation is now passed directly without scaling because it is then easier to use. Note that the previous formula performed max() twice for both input image and the result, now there is just one max() per channel because the glare input can't be negative. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D7138
2021-04-12Compositor: Allocate OIDN memory after receiving lock.Jeroen Bakker
Related to {T77023}. When using many Denoise nodes the memory in OIDN are allocated up front. A mutex could stall the process until. This change will allocate the memory after it received the lock.
2021-04-12Fix: File output uses incorrect resolution when first socket unused.Jeroen Bakker
File output node always received the resolution from the first socket. When that socket didn't had a link it would use a resolution of 0,0. What lead to not saving the file at all. This only effected Multi layer OpenEXR files. This change would go over all the links to find the first valid resolution.
2021-04-12Fix T87252: File output node broken with more than 4 inputs.Jeroen Bakker
In recent refactor the operator sockets were migrated from a std::list to a blender::Vector. The way how the file output node created the sockets along mapping the sockets could lead to storing incorrect pointers. This patch fixes this by defining and mapping the sockets in separate loops.
2021-04-12Fix T87348: convert vertex colors to linear color spaceJacques Lucke
Differential Revision: https://developer.blender.org/D10956
2021-04-12Spreadsheet: add spreadsheet width unitJacques Lucke
This also fixes the issue that the width of the "Name" column when viewing instances does not resize correctly. Differential Revision: https://developer.blender.org/D10926
2021-04-12Fix T87308: don't show columns when there are no instancesJacques Lucke
2021-04-12Fix T87259: Un-Subdivide creates duplicate facesCampbell Barton
Add argument to BM_vert_collapse_faces to remove any faces that become duplicate as result of the collapse.
2021-04-12Cleanup: remove make_quicky and enum generation utilitiesCampbell Barton
- Remove `make_quicky` as on modern systems linking is the main bottleneck, and there isn't such a gain from partial builds. - Remove enum generator as `PyC_StringEnumItems` & `EnumPropertyItem` are used in most places to access enums from Python, otherwise macros are added via macros.
2021-04-11Fix T87157: GPencil subdivide last segmentFalk David
Previously it was not possible to subdivide the last segment of a cyclic stroke. The fix makes sure that the correct number of new points is calculated correctly and adds the new points to the last segment. Reviewed By: antoniov Maniphest Tasks: T87157 Differential Revision: https://developer.blender.org/D10902
2021-04-11Cleanup: use ELEM, STREQ macrosCampbell Barton
2021-04-11Cleanup: clang-formatCampbell Barton
2021-04-11Cleanup: spellingCampbell Barton
2021-04-11Fix T87355: Crash using menu search from the top barCampbell Barton
Menu search used an area with a NULL data pointer, replace this with a dummy pointer. Caused by 3f3b4745b6ad99a0503fba4793d0f1febedadebc.
2021-04-10LibOverride: Fix resync bug on recursive overrides.Bastien Montagne
Linked override were not properly ignored in some part of the code, leading to invalid resync results in some cases with recursive overrides (i.e. overrides of overrides). Reported by Andy @eyecandy from the studio.