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
2021-04-22Merge branch 'blender-v2.93-release'Campbell Barton
2021-04-22Fix T85051: Add bisect distance as a parameter to the mirror modifierFalk David
The `bisect_distance` in the mirror modifier was hard-coded to `0.001`. This would result in some unexpected behavior like vertices close to the mirror plane being deleted or merged. The fix now adds a parameter to the mirror modifier to expose the bisect distance to the user. The default is set to the previous hard-coded value to not "change" previous files. Ref D10201
2021-04-21Geometry Nodes: add method to get attribute by name and typeJacques Lucke
This is needed by the upcoming Attribute Transfer node. It changes its behavior based on what domain the attribute is on.
2021-04-21Geometry Nodes: extract mesh surface sampling functions to separate fileJacques Lucke
2021-04-21Geometry Nodes: add utility to convert CPPType to static typeJacques Lucke
2021-04-20Merge branch 'blender-v2.93-release'Campbell Barton
2021-04-20Fix T86871: Crash with to_mesh() on tapered bezier curveCampbell Barton
2021-04-20Geometry Nodes: support geometry nodes modifier on volume objectsJacques Lucke
Differential Revision: https://developer.blender.org/D11011
2021-04-20Cleanup: clang tidy readability-inconsistent-declaration-parameter-nameJacques Lucke
2021-04-20Cleanup: remove redundant code/comments from BKE_mesh_nomain_to_meshCampbell Barton
2021-04-20Merge branch 'blender-v2.93-release'Campbell Barton
2021-04-20Fix T87055: Crash applying modifier on mesh with multires dataCampbell Barton
2021-04-20PyAPI: support Operator.poll functions 'disabled' hintCampbell Barton
Python scripts can now define the reason it's poll function fails using: `Operator.poll_message_set(message, ...)` This supports both regular text as well as delaying message creation using a callback which should be used in situations where constructing detailed messages is too much overhead for a poll function. Ref D11001
2021-04-20Cleanup: add CTX_wm_operator_poll_msg_clearCampbell Barton
Call this function instead of `CTX_wm_operator_poll_msg_set(C, NULL)`
2021-04-19Merge branch 'blender-v2.93-release'Brecht Van Lommel
2021-04-19Fix crash with Alembic export after recent persistent data bugfixBrecht Van Lommel
We weren't clearing the recalc flags for that case.
2021-04-19Merge branch 'blender-v2.93-release'Brecht Van Lommel
2021-04-19Fix T87535, T87295: issues with new persistent data optionBrecht Van Lommel
Some persistent data code was disable due to a deeper design issue, which meant some updates were not communicated to renderers. Dependency graph updates work in two passes, once where Blender scene animation updates are done, then app handler scripts can run to make further scene modifications, and then the depsgraph is updated again to take those into account. Previously the viewport would update renderers twice when such app handler scripts were present. Now both viewport and persistent data rendering update the renderers only once, accumulating updates from both passes.
2021-04-19Cleanup: spellingCampbell Barton
2021-04-19Geometry Nodes: new Switch nodeEitan
This is a first iteration of a switch node. It can only switch between two inputs values based on a boolean. A more sophisticated switch node that has an integer selector will probably come later. Currently, the geometry nodes evaluator does not support lazy evaluation of individual inputs. Therefore, all inputs will be computed currently. An improvement to the evaluator will be worked on separately. Ref: T85374 Differential Revision: https://developer.blender.org/D10460
2021-04-17Merge branch 'blender-v2.93-release'Germano Cavalcante
2021-04-17Fix memory leak in the BLI_bitmap created in 'looptri_no_hidden_map_get'Germano Cavalcante
2021-04-17Geometry Nodes: use virtual arrays in internal attribute apiJacques Lucke
A virtual array is a data structure that is similar to a normal array in that its elements can be accessed by an index. However, a virtual array does not have to be a contiguous array internally. Instead, its elements can be layed out arbitrarily while element access happens through a virtual function call. However, the virtual array data structures are designed so that the virtual function call can be avoided in cases where it could become a bottleneck. Most commonly, a virtual array is backed by an actual array/span or is a single value internally, that is the same for every index. Besides those, there are many more specialized virtual arrays like the ones that provides vertex positions based on the `MVert` struct or vertex group weights. Not all attributes used by geometry nodes are stored in simple contiguous arrays. To provide uniform access to all kinds of attributes, the attribute API has to provide virtual array functionality that hides the implementation details of attributes. Before this refactor, the attribute API provided its own virtual array implementation as part of the `ReadAttribute` and `WriteAttribute` types. That resulted in unnecessary code duplication with the virtual array system. Even worse, it bound many algorithms used by geometry nodes to the specifics of the attribute API, even though they could also use different data sources (such as data from sockets, default values, later results of expressions, ...). This refactor removes the `ReadAttribute` and `WriteAttribute` types and replaces them with `GVArray` and `GVMutableArray` respectively. The `GV` stands for "generic virtual". The "generic" means that the data type contained in those virtual arrays is only known at run-time. There are the corresponding statically typed types `VArray<T>` and `VMutableArray<T>` as well. No regressions are expected from this refactor. It does come with one improvement for users. The attribute API can convert the data type on write now. This is especially useful when writing to builtin attributes like `material_index` with e.g. the Attribute Math node (which usually just writes to float attributes, while `material_index` is an integer attribute). Differential Revision: https://developer.blender.org/D10994
2021-04-16Merge branch 'blender-v2.93-release'Jacques Lucke
2021-04-16Fix T87522: frame selected does not take instances into accountJacques Lucke
`ob->runtime.geometry_set_eval` can contain instances as well. This only affected instances generated by geometry nodes. We should probably have a separate function that tells us if an object has instances or not..
2021-04-16Fix unreported: instances disappear when instanced mesh is in edit modeJacques Lucke
The issue is that for historic reasons, `geometry_set_eval` does not contain the mesh component when the object is in edit mode.
2021-04-16Fix T87441: don't remove custom attributes automaticallyJacques Lucke
In the past, custom attributes were rarely used in practice, because the only way to use them was from Python. Since geometry nodes, more users started to add their own attributes. Those attributes should not be removed automatically. It is still possible to remove them in geometry nodes explictly to improve performance.
2021-04-16Fix various Blender 3.0 versioning issuesRay Molenkamp
This changes the following items: - package name is now `blender-3.0.0-git.09eb04c0a865-windows64` rather than `blender-3.00.0-git.09eb04c0a865-windows64` - Fix version resource for blender.exe not building - Data directories are now `3.0\...` rather than `3.00\....` - User prefs are now in: `c:\Users\users\AppData\Roaming\Blender Foundation\Blender\3.0\` rather than: `c:\Users\users\AppData\Roaming\Blender Foundation\Blender\3.00\` - Updating startup & preferences from previous release has a special exception for 3.0 to check for 3.93 and older. See T87532 Ref D10986
2021-04-15Blender Python version string to use the new version number systemDalai Felinto
2021-04-15Blender 2.93 bcon3 (beta) version bumpDalai Felinto
2021-04-15Blender 3.0 version bumpDalai Felinto
Blender 3.0 is now in bcon1 (alpha). There are likely a few places in Blender and the automated building pipeline that may fail since we are switching our versioning number system. For example, at the moment the splash and the status bar are showing 3.00.0, and it should show 3.1.0. I suspect the Python API, version used to report a bug, buildname, are all wrong too. These will be handled later.
2021-04-15Bump subversion before starting the next release cycleDalai Felinto
2021-04-15Bump subversion before starting the next release cycleDalai Felinto
2021-04-15Geometry Nodes: refactor implicit conversionsJacques Lucke
This refactor simplifies having standalone function pointer that does a single conversion. It also speeds up implicit type conversion of attributes.
2021-04-15Cleanup: move type conversions to separate fileJacques Lucke
2021-04-15Spreadsheet: breadcrumbs and node pinningJacques Lucke
This introduces a context path to the spreadsheet editor, which contains information about what data is shown in the spreadsheet. The context path (breadcrumbs) can reference a specific node in a node group hierarchy. During object evaluation, the geometry nodes modifier checks what data is currently requested by visible spreadsheets and stores the corresponding geometry sets separately for later access. The context path can be updated by the user explicitely, by clicking on the new icon in the header of nodes. Under some circumstances, the context path is updated automatically based on Blender's context. This patch also consolidates the "Node" and "Final" object evaluation mode to just "Evaluated". Based on the current context path, either the final geometry set of an object will be displayed, or the data at a specific node. The new preview icon in geometry nodes now behaves more like a toggle. It can be clicked again to clear the context path in an open spreadsheet editor. Previously, only an object could be pinned in the spreadsheet editor. Now it is possible to pin the entire context path. That allows two different spreadsheets to display geometry data from two different nodes. The breadcrumbs in the spreadsheet header can be collapsed by clicking on the arrow icons. It's not ideal but works well for now. This might be changed again, if we get a data set region on the left. Differential Revision: https://developer.blender.org/D10931
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-14Cleanup: spellingCampbell Barton
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-13Cleanup: redundant struct declarationsCampbell Barton
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/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-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 T87348: convert vertex colors to linear color spaceJacques Lucke
Differential Revision: https://developer.blender.org/D10956
2021-04-11Cleanup: use ELEM, STREQ macrosCampbell Barton
2021-04-11Cleanup: spellingCampbell Barton
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.
2021-04-10LibOverride: Fix (unreported) assert when creating overrides of linked ↵Bastien Montagne
overrides. We do not want to copy exiting overrides data from linked ID when creating its local override (be it either a template, or because linked ID is itself an override of another lib data). Note that this was not a very serious issue, would just cause some memory leak since override data is re-created on newly copied local data anyway. These use cases have been very little tested so far, but both complex production pipeline and future restrictive workflow will make them fairly common...
2021-04-10LibOverride: Add own flag to copy or not overrides to ID copy code.Bastien Montagne
Relying on only no-main for that was weak, and inn the end it turns out we sometimes also need to ifnore override data during copy of Main data-blocks. NOTE: The new `LIB_ID_COPY_NO_LIB_OVERRIDE` is also added to the `LIB_ID_COPY_LOCALIZE` set of flags. NOTE: The fact that we may now copy liboverrides in some non-main cases may cause issues in some cases, pretty impossible to track all possible ones from reading the code... Would not expect too many problem though, usages of `LIB_ID_CREATE_NO_MAIN` by itself are not so common.
2021-04-09Cleanup: use our own code style for doxy-gen comment blocksCampbell Barton