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
AgeCommit message (Collapse)Author
2020-12-15NLA: Action Strip Defaults Sync Length OnWayde Moss
See T82309#1055564 {T63675} and their duplicates for how Default-off can cause confusion. This is just for convenience since it allows animators to keyframe outside of the strip's bounds by default. This was likely off by default before since Syncing Length would undesirably shift the whole animation after leaving tweak mode (fixed by {D7602}) and the animator wasn't able to keyframe outside the strip bounds anyways (fixed by {D7533}). Now it's better if the flag was on by default. While the animator is still roughly developing their animation NLA-wise they won't have to worry about strip bound keying failures. When they are more certain of the strip bounds, they can disable the flag to prevent affecting the rest of the NLA system. Reviewed By: sybren Differential Revision: https://developer.blender.org/D9661
2020-12-15Nla Refactor: Blend functions explicit Div0 checkWayde Moss
It's an explicit check to prevent division by zero if caller hasn't done the check. Future patch {D8867} will not use the nla remap function and thus not do the check. This patch also replaces some float (==) equality checks with IS_EQF(). Split from {D9247} Reviewed By: sybren Differential Revision: https://developer.blender.org/D9694
2020-12-15Nla Refactor: nlaevalchan_validate_index_ex()Wayde Moss
And removes redundant index local variable. Future patches {D8296} and {D8867} make use of this function. No functional changes. Split from {D9247} Reviewed By: sybren Differential Revision: https://developer.blender.org/D9693
2020-12-15NLA: Fix context.selected_nla_strips PointerRNAWayde Moss
The strips were given the wrong owner ID. This only caused issues for python based UI as far as I know. Property changes would not properly update the viewport. Reviewed By: lichtwerk Differential Revision: https://developer.blender.org/D9685
2020-12-15Fix incorrect RNA type warningHans Goudey
Using the RNA type for regular modifiers instead of grease pencil modifiers caused a warning in context.c.
2020-12-14Geometry Nodes: Input data type utility functionHans Goudey
This commit adds a simple utility function for getting the data type of an attribute or its "constant" socket counterparts. No functional changes. Differential Revision: https://developer.blender.org/D9819
2020-12-14Fix several issues with handling of numpy in CMake.Bastien Montagne
Issues were: * Abusing of `WITH_PYTHON_INSTALL_NUMPY` by both Audaspace and Mantaflow. - `PYTHON_INSTALL` options only decide whether we copy python (and some extra modules) in our Blender installation. On linux it makes much more sense to use global python installation. - Now we have instead a proper `WITH_PYTHON_NUMPY` * Bad assumptions regarding path of headers relative to path of python module. - In current Debian testing, modules are under `python3.9` directory, while headers are under `python3` directory. - Now we properly `find_path` for headers as well, modifying `find_python_package` to take an optional argument for headers. Note that the required changes done to `extern` libraries are in blender-specific files that do not exist upstream. Differential Revision: https://developer.blender.org/D9773
2020-12-14Cryptomatte: Data structure in compositor nodeJeroen Bakker
This changes the way how the mattes are stored in the compositor node. This used to be a single string what was decoded/encoded when needed. The new data structure stores all entries in `CryptomatteEntry` and is converted to the old `matte_id` property on the fly. This is done for some future changes in the workflow where a more structured approach leads to less confusing and easier to read code.
2020-12-14Geometry Nodes: enabled supports-mapping in nodes modifierJacques Lucke
Sometimes the geometry nodes modifier does support mapping and sometimes it does not. We have no infrastruture to determine this ahead of time currently. In order to support common use cases, it makes sense to add this flag to the modifier. One such common use case is to use the mesh as surface that other things are distributed on. Often, the distribution is controlled by vertex groups. Therefore, it would be helpful if the modifier is evaluated when the object is in vertex paint mode. This allows the user to see the distributed objects while painting. If the nodes modifier transforms the mesh in any way, vertex painting might not work as expected anymore, because the `deformMatrices` callback is not implemented. I'm not sure how this can be solved nicely, yet.
2020-12-14Geometry Nodes: require vertex groups data in nodes modifierJacques Lucke
Without this, the modifier evaluation code might remove any vertex groups from the mesh for performance reasons. We can't say for sure whether the node group will need the vertex groups, but it is quite likely. Ref T83357.
2020-12-14Cryptomatte: apply volume transmittance to Eevee.Jeroen Bakker
This patch will add volumetric transmittance to the cryptomatte coverage data of all samples when post processing the cryptomatte passes. It was discussed with Cycles that this is desired, but tricky to implement in Cycles.
2020-12-14Fix memory leak and possible other issues with custom previewsJulian Eisel
Mistake in 812ea9184221. Fixed that same one before in the branch, I may have brought it back when resolving merge conflicts.
2020-12-14Fix T75539: Cycles missing geometry update when switching displacement methodJoan Bonet Orantos
The shaders were not tagged for a needed geometry update when the displacement method was modified, neither were the Geometry and Object managers. Reviewed By: kevindietrich Maniphest Tasks: T75539 Differential Revision: https://developer.blender.org/D8896
2020-12-14UI/Assets: Support generating object preview imagesJulian Eisel
Object previews are really helpful for visual data-block selection, like asset browsing. Having them be generative should also be quite handy and should work well enough in many, if not most cases. What this does is simple: * Place the object (actually a deep copy of it, for thread safety) in a virtual .blend into an empty scene/view-layer. * Add a camera, point it towards the front of the object, assuming that means pointing towards its +Y axis. * Use "Camera Fit Frame to Selected" logic to put the object into frame. * Create a threaded off-screen render. Of course, such an automatic preview will not work in all situations. E.g. it currently does a bad job capturing a single plane. We could add options for more advanced automatic previews, but probably custom previews is more important, which I committed already (812ea9184221). Part of the first Asset Browser milestone. Check the #asset_browser_milestone_1 project milestone on developer.blender.org. Reviewed as part of https://developer.blender.org/D9719. Reviewed by: Bastien Montagne, Brecht Van Lommel
2020-12-14Blenkernel: move DerivedMesh.c to c++Jacques Lucke
Required changes to make it compile with clang tidy: * Use c++ includes like (e.g. climits instead limits.h). * Insert type casts when casting from void* to something else. * Replace NULL with nullptr. * Insert casts from int to enum. * Replace designed initializers (not supported in C++ yet). * Use blender::Vector instead of BLI_array_staticdeclare (does not compile with C++). * Replace typedef statements. Ref T83357.
2020-12-14Revert "Fix several issues with handling of numpy in CMake."Bastien Montagne
This reverts commit 5d570c875eda8fb9aa3635f7f4edac0dc1eaedc8. Buildbots are still borken, need more time to investigate.
2020-12-14Revert "Fix own error in rB5d570c875eda in CMake script."Bastien Montagne
This reverts commit 6da609fcb365f2e51299045b7d5e93fd17583f54. Buildbots are still broken, need more time to investigate.
2020-12-14Fix own error in rB5d570c875eda in CMake script.Bastien Montagne
My mistake, though CMake could handle default arguments but it needs to be explicitly passed actually.
2020-12-14UI/Assets: Operator to load custom preview images for data-blocksJulian Eisel
No automatic preview generation will ever be good enough to cover all cases well. So custom preview images are a must for a preview driven data-block selection - like for asset browsing. The operator simply allows selecting an image file, which will then be read and copied into the data-blocks preview (resized if necessary). There's no UI for this currently and the operator won't be available in the search menu yet. It will later once the Asset Browser UI is merged. Reviewed as part of https://developer.blender.org/D9719. Reviewed by: Bastien Montagne, Brecht Van Lommel
2020-12-14Fix windows build.Alexander Gavrilov
2020-12-14LibOverride: Do not store some heavy data from override IDs.Bastien Montagne
This commit removes geometry from meshes and shapekeys, and embedded files, from liboverride IDs. This data is never overrideable, there is no reason to store extra useless copies of it in production files. See T78944. Note that we may add more data to be skipped on write for liboverrides in the future, but this commit should address all the most important cases already. Reviewed By: brecht Differential Revision: https://developer.blender.org/D9810
2020-12-14GPencil: Add missing Pin icon for default eraserAntonio Vazquez
This icon allows to set the default eraser when press Ctrl key and was removed by error in the brush refactor.
2020-12-14Fix several issues with handling of numpy in CMake.Bastien Montagne
Issues were: * Abusing of `WITH_PYTHON_INSTALL_NUMPY` by both Audaspace and Mantaflow. - `PYTHON_INSTALL` options only decide whether we copy python (and some extra modules) in our Blender installation. On linux it makes much more sense to use global python installation. - Now we have instead a proper `WITH_PYTHON_NUMPY` * Bad assumptions regarding path of headers relative to path of python module. - In current Debian testing, modules are under `python3.9` directory, while headers are under `python3` directory. - Now we properly `find_path` for headers as well, modifying `find_python_package` to take an optional argument for headers. Note that the required changes done to `extern` libraries are in blender-specific files that do not exist upstream. Differential Revision: https://developer.blender.org/D9773
2020-12-14Cleanup: clang tidyJacques Lucke
2020-12-14Fix T83712: arctangent math node does not work in EeveeJacques Lucke
Caused by my refactoring of the math node. Somehow this operation slipped through my double checking procedure.
2020-12-14Cleanup: path_util.c commentsCampbell Barton
2020-12-14Fix missing string escape for RNA path creationCampbell Barton
2020-12-14Fix version patching sequence strip alpha from 2.4x filesCampbell Barton
Regression in 4f5f868a523430aa41de8bd63f888878aaf63002
2020-12-14Fix enum-conversion, old-style-declaration warningsCampbell Barton
Introduced in 8f3a401975987c9b70f3ea0ea21977c70371b466
2020-12-14Fix T83696: Add Additional menu to Effects panelAntonio Vazquez
This adds the missing options for the effects as it is done in modifiers. Reviewed By: HooglyBoogly Maniphest Tasks: T83696 Differential Revision: https://developer.blender.org/D9838
2020-12-14Eevee: Add Volume Transmittance to Color Render Passes.Jeroen Bakker
In Cycles the volume transmittance is already composited into the color passes. In Eevee the volume transmittance pass was separate and needed to be composited in the compositor. This patch adds the volume transmittance pass direct in the next render passes: * Diffuse Color * Specular Color * Emission * Environment This patch includes the removal of the volume transmittance render pass. It also renames the volume render passes to match Cycles. The setting themselves aren't unified. Maniphest Tasks: T81134
2020-12-14UI: Click modifier icon to set active modifierHans Goudey
This should be a final piece of the changes for the active modifier interface. Before, it was necessary to click on the blank space of a modifier panel to set it active (not the header), this commit allows clicking on the icon also. The spacing with the spacing with the expand button would ideally be a bit larger, but the layout system doesn't offer much flexibility here.
2020-12-14Fix T83673: Custom node trees selectable in nodes modifierHans Goudey
Node tree types from addons were selectable in the modifier's drop-down. Obviously they didn't do anything, but it shouldn't be possible anyway. This was just caused by an unimplemented poll function.
2020-12-14Cleanup: Fix capitalization in various placesYevgeny Makarov
Approximately 33 changes of capitalization to conform to MLA title style. Differential Revision: https://developer.blender.org/D9796 Reviewed by Julian Eisel
2020-12-14Fix T83725 Inconsistent vertex group between exact and fast boolean.Howard Trickey
This makes the exact boolean have zero weights for any vertex groups on any newly created vertices, which is what the fast solver does. The exact boolean solver was interpolating vertex data when interpolating loop data in newly created faces. Not sure why I chose that. The Fast boolean solver doesn't do that, so I stopped doing it too.
2020-12-13Cleanup: removing some uses of equal sign in descriptionsYevgeny Makarov
Using 'is/means/equal' words in place of equal sign in descriptions. Differential Revision: https://developer.blender.org/D9799 Reviewed by Hans Goudey
2020-12-13Fix cursor position on HighDPI in stereo side-by-side modeYevgeny Makarov
Could not select left quarter of the screen in stereo side-by-side mode on high dpi displays. Differential Revision: https://developer.blender.org/D9836 Reviewed by Julian Eisel
2020-12-13UI: Improved Script Execution WarningYevgeny Makarov
New dialog box layout with large alert icon for the Python script execution warning popup. Differential Revision: https://developer.blender.org/D9390 Reviewed by Hans Goudey
2020-12-13UI: Remove Unused 'U.wheellinescroll' PropertyYevgeny Makarov
Remove 'U.wheellinescroll' preference, currently hidden and unused. Differential Revision: https://developer.blender.org/D9616 Reviewed by Brecht Van Lommel
2020-12-13Fix weird Swing+Twist decomposition with noncanonical quaternions.Alexander Gavrilov
It turns out that after the fix to T83196 (rB814b2787cadd) the matrix to quaternion conversion can produce noncanonical results in large areas of the rotation space, when previously this was limited to way smaller areas. This in turn causes Swing+Twist math to produce angles beyond 180 degrees, e.g. outputting a -120..240 range. This fixes both issues, ensuring that conversion outputs a canonical result, and decomposition canonifies its input. This was reported in chat by @jpbouza.
2020-12-13Cleanup: Reduce variable scope in view_2d_ops.cHans Goudey
2020-12-12UI: Add more property editor operators to IC keymapHans Goudey
As a followup for rB2b3d85d7d6771, this commit adds the remove and copy operators for grease pencil modifiers, effects, and constraints where they apply.
2020-12-12Fix T83705: GPencil - Duplicate strokes of destination layer when merge layerAntonio Vazquez
If the destination layer hadn't keyframe, a new keyframe was added and later the merge layer strokes were added, but this could change the animation because the new frame replaced the old drawings of the target layer. Now, before merge the layer, all keyframes are added in the target layer in order to keep the drawings.
2020-12-12GPencil: Add uniform subdivide BKE to improve interpolationFalk David
This patch introduces a new BKE function that performs a uniform subdivide. The goal of this function is to subdivide the stroke to reach a target number of points while maintaining its shape, color, and weights. This is done by repeatedly subdividing the longest edge in the stroke. Every subdivision adds a new point at the exact middle point of an edge. The function is intended to be used in the interpolation operators to give better results when interpolating between different sized strokes. Reviewed By: antoniov Differential Revision: https://developer.blender.org/D9835
2020-12-12Cleanup: clang tidyJacques Lucke
2020-12-12UI: Allow UI to pass focused data-block to operators via contextJulian Eisel
This is similar to c4a2067130130d, but applies to the general UI and is only about single data-blocks. Here there was a similar problem: How can buttons pass the data they represent to operators? We currently resort to ugly ad-hoc solutions like `UI_context_active_but_get_tab_ID()`. So the operator would need to know that it is executed on a tab button that represents a data-block. A single button can now hand operators a data-block to operate on. The operator can request it via the "id" context member (`CTX_data_pointer_get_type(C, "id", &RNA_ID)` in C, `bpy.context.id` in .py). In this commit, it is already set in the following places: * Generic RNA button code sets it to the pointed to data-block, if the button represents a data-block RNA pointer property. (I.e for general data-block search buttons.) * Data-block selectors (`templateID`) set it to the currently active data-block. * The material slot UI-List sets it for each slot to the material it represents. The button context menu code is modified so its operators use the context set for the layout of its parent button (i.e. `layout.context_pointer_set()`). No user visible changes. This new design isn't actually used yet. It will be soon for asset operators. Reviewed as part of https://developer.blender.org/D9717. Reviewed by: Brecht Van Lommel
2020-12-12UI: Allow Outliners to pass selected data-blocks to operators via contextJulian Eisel
The way the Outliner integrates operations on selected tree elements is known to be quite problematic amongst developers. The context menu is generated in an unusual way and doesn't use the normal operator system. Instead, changes are applied via a recursive callback system. Things are quite ad-hoc, and the callbacks often implement logic that should not be in the Outliner, but in entirely different modules. Often these modules already contain the logic, but as proper operators. This commit is a step into a hopefully better direction that should allow us to put actual operators into Outliner context menus. It starts solving the problem of: How can the Outliner pass selected data to operators. It implements it for data-blocks only, but other data could do it in the same way. Idea is to keep doing what operators were initially designed to do: Operate on context. Operators can now query a "selected_ids" context member (`CTX_data_selected_ids()` in C, `bpy.context.selected_ids` in .py). If an Outliner is active, it will generate a list of selected data-blocks as a response, via its `SpaceType.context` callback. Any other editor could do the same. No user visible changes. This new design isn't actually used yet. It will be soon for asset operators. Reviewed as part of https://developer.blender.org/D9717. Reviewed by: Brecht Van Lommel
2020-12-11Fix error in recent commitGermano Cavalcante
Introduced in rBcada56b1f72f537f9ab007cfafd430ac10c292fb
2020-12-11Fix: Fix potential memory leak in BLI_getenvRay Molenkamp
Issue introduced in rB87b19b3aba0c and unlikely to occur but no reason not to have correct code.
2020-12-11Cleanup: Python GPU: change prefix 'bpygpu_' to 'py_' in static functionsGermano Cavalcante