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-11-19LibOverride: Add read-only flags accessors for 'local override' status.Bastien Montagne
Constraints, modifiers and NLA tracks can now report from RNA whether they are defined as comming from the override's reference linked data, or are local to the override.
2021-10-06UI: Boolean rename "Self" to "Self Intersection"Aaron Carlisle
Better to be more explicit here, also this matches the recent Boolean Node.
2021-09-10Modifiers: export motion blur velocity through attributeBrecht Van Lommel
Previously fluid simulation and Alembic modifiers had a dedicated function to query the velocity for motion blur. Now use a more generic system where those modifiers output a velocity attribute. Advantages: * Geometry and particle nodes can output velocity through the same mechanism, or read the attribute coming from earlier modifiers. * The velocity can be preserved through modifiers like subdivision surface or auto smooth. * USD and Alembic previously only output velocity from fluid simulation, now they work with velocity from other sources too. * Simplifies the code for renderers like Cycles and exporters like Alembic and USD. This breaks compatibility: * External renderers and exporters accessing these velocities through the Python API now need to use the attribute instead. * Existing modifier node setups that create an attribute named "velocity" will render differently with motion blur. Differential Revision: https://developer.blender.org/D12305
2021-09-09Modifier: add support for vertex groupsMaxime Casas
Allow blending the imported cache with the modifiers stack above the MeshCache modifier. This is particularly useful for instance when dealing with cloth simulations performed in another software, where some parts of the cloth are completely pinned (non-simulated, following the armature). Indeed, this would allow modifying the animation in some areas without having to rebake the other parts or the cloth, resulting in a much more flexible workflow. Reviewed By: #modeling, campbellbarton, mont29 Ref D9898
2021-08-27Modifier: smooth interpolation supportHenrik Dick
Add an option to the mask modifier to use the vertex weights to generate smooth in between geometry, instead of just deleting non complete faces. This can be used to make all sorts of smooth dissolve animations directly with geometry, which are usually hacked together with shaders. It also allows for implicit function plotting using geometry nodes and boolean like operations on non manifold geometry with the proximity modifier. Reviewed By: campbellbarton Ref D10979
2021-08-16Geometry Nodes: Add UV Smooth, Boundary Smooth options to subdivision nodeEitan
Replaces the boolean option with enum menus for consistency with the subdivision modifier (rB66151b5de3ff,rB3d3b6d94e6e). Adds all UV interpolation options. Original patch by Eitan. Updated by Himanshi Kalra <calra>. {F9883204} Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D10417
2021-07-29Fix T89213: Some modifier properties have wrong subtypeGermano Cavalcante
This commit resolves these RNA warnings: ``` offset: "", WARN (bpy.rna): ...\source\blender\python\intern\bpy_rna.c:1505 pyrna_enum_to_py: current value '65536' matches no enum in 'FloatProperty', 'offset', 'subtype' project_limit: "", WARN (bpy.rna): ...\source\blender\python\intern\bpy_rna.c:1505 pyrna_enum_to_py: current value '65536' matches no enum in 'FloatProperty', 'project_limit', 'subtype' falloff_radius: "", WARN (bpy.rna): ...\source\blender\python\intern\bpy_rna.c:1505 pyrna_enum_to_py: current value '65567' matches no enum in 'FloatProperty', 'falloff_radius', 'subtype' ```
2021-07-24Weld Modifier: add "loose_edges" optionFredrik Hansson
This improve the cloth modeling workflow by allowing you to weld only the edges that are used for the sewing forces. Reviewed By: mano-wii, weasel Differential Revision: https://developer.blender.org/D10710
2021-07-16Surface Deform: support sparse binding mode for improving performance.Alexander Gavrilov
When a vertex group is used to limit the influence of the modifier to a subset of vertices, binding data for vertices with zero weight is not needed. This wastes memory, disk space and CPU cycles. If the vertex group contents is known to be final and constant, it is reasonable to optimize by only storing data group vertices. This has to be an option in case the group can change. Supporting this requires adding a vertex index field and spliting the vertex count into mesh and bind variants, but both happen to fit in available padding. The old numverts field is renamed to the new bound vertex count field to maintain the array length invariant. Versioning is used to initialize the other new fields. If a file with sparse binding is opened in an old blender version, it is corrupted into a non-sparse bind with vertex count mismatch, preventing the modifier from working until rebind. Differential Revision: https://developer.blender.org/D11924
2021-07-14Python API: Add functions to ensure and clear IDPropertiesHans Goudey
This adds id_properties_clear() and id_properties_ensure() functions to RNA structs. This is meant as an initial change based on discussion in review of D9697. However, they may be useful in other situations. The change requires refactoring the internal idproperties callback to return a pointer to the IDProperty pointer, which actually turns out to be quite a nice cleanup. An id_properties attribute could be added in the future potentially. Differential Revision: https://developer.blender.org/D11908
2021-07-13Refactor: Move vertex group names to object dataHans Goudey
This commit moves the storage of `bDeformGroup` and the active index to `Mesh`, `Lattice`, and `bGPdata` instead of `Object`. Utility functions are added to allow easy access to the vertex groups given an object or an ID. As explained in T88951, the list of vertex group names is currently stored separately per object, even though vertex group data is stored on the geometry. This tends to complicate code and cause bugs, especially as geometry is created procedurally and tied less closely to an object. The "Copy Vertex Groups to Linked" operator is removed, since they are stored on the geometry anyway. This patch leaves the object-level python API for vertex groups in place. Creating a geometry-level RNA API can be a separate step; the changes in this commit are invasive enough as it is. Note that opening a file saved in 3.0 in an earlier version means the vertex groups will not be available. Differential Revision: https://developer.blender.org/D11689
2021-07-05Geometry Nodes: new Viewer nodeJacques Lucke
This adds a viewer node similar to the one in the compositor. The icon in the headers of nodes is removed because it served the same purpose and is not necessary anymore. Node outputs can be connected to the active viewer using ctrl+shift+LMB, just like in the compositor. Right now this collides with the shortcut used in the node wrangler addon, which will be changed separately. As of now, the viewed geometry is only visible in the spreadsheet. Viewport visualization will be added separately. There are a couple of benefits of using a viewer node compared to the old approach with the icon in the node header: * Better support for nodes that have more than one geometry output. * It's more consistent with the compositor. * If attributes become decoupled from geometry in the future, the viewer can have a separate input for the attribute to visualize. * The viewer node could potentially have visualization settings. * Allows to keep "visualization points" around by having multiple viewer nodes. * Less visual clutter in node headers. Differential Revision: https://developer.blender.org/D11470
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-28Cleanup: repeated terms in code comments & error messagesCampbell Barton
2021-05-17UI: use non-linear slidersHenrik Dick
* Boolean Modifier > Fast > Overlap Threshold (Logarithmic). * Remesh Modifier > Voxel > Voxel Size (Logarithmic). * Sculpt > Dyntopo > Detail Size (Cubic). Ref D9074
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-03-26UI: Use unified format for "Warning" in descriptionsYevgeny Makarov
Warnings in tooltips were using inconsistent formatting, some in parantheses, some not, some in caps, others not, some on new lines, some not, etc. This patch uses a consistent new line and no capitals for these cases. Differential Revision: https://developer.blender.org/D9904
2021-03-09UI: Clean up sub-panel for new boolean modifier optionsHans Goudey
A few changes to make this consistent with other modifier panels: - Title case for UI labels - Use property split (and therefore decorators) - Declare sublayout variables after getting modifier info
2021-03-08UI: UVProject modifier: clarify aspect & scale are only for cameraPhilipp Oeser
projectors Make this clear in property UI descriptions and deactivate aspect & scale fields if no camera projectors are present. ref T86268 Maniphest Tasks: T86268 Differential Revision: https://developer.blender.org/D10634
2021-03-08Cleanup: add use prefix for booleanCampbell Barton
2021-03-08Speedup for usual non-manifold exact boolean case.Howard Trickey
The commit rB6f63417b500d that made exact boolean work on meshes with holes (like Suzanne) unfortunately dramatically slowed things down on other non-manifold meshes that don't have holes and didn't need the per-triangle insideness test. This adds a hole_tolerant parameter, false by default, that the user can enable to get good results on non-manifold meshes with holes. Using false for this parameter speeds up the time from 90 seconds to 10 seconds on an example with 1.2M triangles.
2021-03-03Cleanup: make formatJacques Lucke
2021-03-02UI: Clean up labels and descriptions: "Draw" to "Display"William Reynish
In Blender, we used to use the term 'draw' to refer to information displayed to the user. For version 2.80, it was decided to change these instances to 'display' instead. This was to avoid the ambiguity between end-user drawing tools and display options. From the Oxford English Dictionary: - Draw: produce (a picture or diagram) by making lines and marks on paper with a pencil, pen, etc. - Display: show (data or an image) on a computer, television, or other screen. Therefore, we should use draw when referring to drawing tools for making marks, but use display when referring to information shown/displayed to the user. From a user POV, the computer displays certain information, whereas the user draws a mark. Apparently this change was not implemented consistently, so this patch changes all remaining relevant instances of "draw". Differential Revision: https://developer.blender.org/D10551
2021-02-24UI: Cleanup and fix labels and descriptions in various placesYevgeny Makarov
Changes include using proper and consistent grammar, simplifying phrasing, using correct terminology, and not including python API identifiers in tooltips. Differential Revision: https://developer.blender.org/D9924
2021-02-19UI: Use title case for labelHans Goudey
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2021-01-26Subsurf: Expose all UV interpolation optionsSergey Sharybin
Useful for interoperability, and allows to change default mode without breaking compatibility.
2021-01-26Subdiv: Fix typo in RNA enum value nameSergey Sharybin
Was duplicated from SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES value.
2021-01-25Fix: Unable to animate nodes modifier exposed propertiesHans Goudey
The RNA path used for animating the settings passed to the node tree is incorrect. Currently it's just `settings.property_name`, but it's the path from the ID, not the modifier, so it should be `modifiers[modifier_name].settings.property_name`. However, the "Settings" struct is separated in RNA and DNA, which means that the callback to get the RNA path does not know about the modifier's name in order to fill the above path, so some reference to the modifier in the "Settings" struct would be necessary, which would create a convoluted layout in the `ModifierData` struct. Instead, this commit simply removes the "Settings" struct from RNA, which isn't as elegant from the point of view of the Python API, but otherwise it's a nice simplification. Note that we don't remove the "Settings" struct from DNA, because it would break reading old files. Differential Revision: https://developer.blender.org/D10175
2021-01-08Cleanup: clang formatPhilipp Oeser
2021-01-08Use the term "N-gon" instead of "Polygon" for triangulation methodPhilipp Oeser
This was reported for the Triangulate geometry node, but was also true for the triangulate modifier and in exporters. Note the modifier was introduced with "Ngon Method" in rBa7b44c82e5b9 but was renamed to "Polygon Method" in rBf4762eb12ba5. Since quads are also polygons (and quads have their own method), the term "N-gon" is more appropriate here and is also described in the glossary https://docs.blender.org/manual/en/2.92/glossary/ index.html#term-N-gon Docs have been updated in rBM7539 (partially - the method would also have to be renamed once this patch lands). Note this also fixes the wrong enum used for the alembic exporter. Fixes T83907 Maniphest Tasks: T83907 Differential Revision: https://developer.blender.org/D10022
2020-12-24Cleanup: Fix capitalization in various UI stringsYevgeny Makarov
Approximately 195 changes of capitalization to conform to MLA title style. UI labels and property names should use MLA title case, while descriptions should be capitalized like regular prose, generally with only the start of a sentence capitalized. Differential Revision: https://developer.blender.org/D9922
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-11UI: Consistent Range DescriptionsYevgeny Makarov
Unifying range descriptions as a value 'to' a value. Differential Revision: https://developer.blender.org/D9771 Reviewed by Julian Eisel
2020-12-10Cleanup: rename BLI_strescape to BLI_str_escapeCampbell Barton
Prepare for `BLI_str_unescape` which doesn't read well without the separator.
2020-12-09Cleanup: use common 'MOD_WELD_MODE_' prefixCampbell Barton
2020-12-09Modifier: Add "Connected" mode to the weld modifierHenrik Dick
Implement improvement from T73139 for merging along edges. It is now called "Connected" mode, while the default is called "All". With the recent performance improvement, the Connected Mode is in some cases only double the speed than the usual merge all strategy but in other cases it may be even faster. The bottleneck is somewhere further down the line of merging geometry. The motivation for this patch came from T80897, because the merging in complex solidify is making it very slow. Now merging can be removed from solidify without greater consequences, as this is just a quicker and more advanced algorithm to do the same thing that solidify currently does slowly. Reviewed by: mano-wii, campbellbarton Ref D8966
2020-12-02Geometry Nodes: unify icons -> use ICON_NODETREE for everythingDalai Felinto
Until there is a icon made specially for this, the nodetree icon is up for grabs. Using it in the nodegroup + modifier + editor helps the users to make a connection on where to edit those modifiers.
2020-12-02Cleanup: remove most of "#ifdef WITH_GEOMETRY_NODES"Dalai Felinto
The ones around the simulation datablock are still there, since they are not needed for the features planned for master yet.
2020-12-02Geometry Nodes: active modifier + geometry nodes editorHans Goudey
This commit adds functions to set and get the object's active modifier, which is stored as a flag in the ModifierData struct, similar to constraints. This will be used to set the context in the node editor. There are no visible changes in this commit. Similar to how the node editor context works for materials, this commit makes the node group displayed in the node editor depend on the active object and its active modifier. To keep the node group from changing, just pin the node group in the header. * Shortcuts performed while there is an active modifier will affect only that modifier (the exception is the A to expand the modifiers). * Clicking anywhere on the empty space in a modifier's panel will make it active. These changes require some refactoring of object modifier code. First is splitting up the modifier property invoke callback, which now needs to be able to get the active modifier separately from the hovered modifier for the different operators. Second is a change to removing modifiers, where there is now a separate function to remove a modifier from an object's list, in order to handle changing the active. Finally, the panel handler needs a small tweak so that this "click in panel" event can be handled afterwards.
2020-12-02Geometry Nodes: initial scattering and geometry nodesJacques Lucke
This is the initial merge from the geometry-nodes branch. Nodes: * Attribute Math * Boolean * Edge Split * Float Compare * Object Info * Point Distribute * Point Instance * Random Attribute * Random Float * Subdivision Surface * Transform * Triangulate It includes the initial evaluation of geometry node groups in the Geometry Nodes modifier. Notes on the Generic attribute access API The API adds an indirection for attribute access. That has the following benefits: * Most code does not have to care about how an attribute is stored internally. This is mainly necessary, because we have to deal with "legacy" attributes such as vertex weights and attributes that are embedded into other structs such as vertex positions. * When reading from an attribute, we generally don't care what domain the attribute is stored on. So we want to abstract away the interpolation that that adapts attributes from one domain to another domain (this is not actually implemented yet). Other possible improvements for later iterations include: * Actually implement interpolation between domains. * Don't use inheritance for the different attribute types. A single class for read access and one for write access might be enough, because we know all the ways in which attributes are stored internally. We don't want more different internal structures in the future. On the contrary, ideally we can consolidate the different storage formats in the future to reduce the need for this indirection. * Remove the need for heap allocations when creating attribute accessors. It includes commits from: * Dalai Felinto * Hans Goudey * Jacques Lucke * Léo Depoix
2020-12-02Add Custom Falloff Curve to the Vertex Weight Proximity Modifier.Christian Friedrich
The Vertex Weight Edit Modifier already got the Custom Curve, there was no real reason for the proximity not to have it as well. With some fixes by Bastien Montagne (@mont29). Reviewed By: mont29 Differential Revision: https://developer.blender.org/D9594
2020-11-12Cleanup: Imperative tense in property descriptionRichard Antalik
2020-10-30Cleanup: Use an enum to set instanced panel expansionHans Goudey
This commit uses an enum to access expansion for specific panels for each modifier, constraint, etc. Even though these values are quite simple, this can help make the code more explicit when the ui_expand_flag is accessed directly. Also update comments about this bitfield to make them consistent.
2020-10-27Multires: Remove simple subdivision typeSergey Sharybin
The simple subdivision as a type only causes issues like no-continuous normals across edges, inability to reliably switch the type and things like this. The new subdivision operators supports wider variety of how to add details to the model, which are more powerful than a single one-time decision on the subdivision type. The versioning code is adjusting topology converter to specify all edges as infinitely sharp. The reason for this (instead of using settings.is_simple) is because in a longer term the simple subdivision will be removed from Subsurf modifier as well, and will be replaced with more efficient bmesh-based modifier. This is finished up version of D8436. Differential Revision: https://developer.blender.org/D9350
2020-10-21Preferences: separate feature flags for geometry nodes and point cloud typeJacques Lucke
Those two features are not directly related and one might be activated in master earlier than the other. WITH_PARTICLE_NODES was removed, because we continue the project under the name "Geometry Nodes".
2020-10-20Simulation: remove particle nodes with outdated designJacques Lucke
The design for how we approach the "Everything Nodes" project has changed. We will focus on a different part of the project initially. While future me will likely refer back to some of the code I remove here, there is no point in keeping this code around in master currently. It would just confuse other developers working on the project. This does not remove the simulation modifier and data block. Those are just cleaned up, so that the boilerplate code can be reused in the future.
2020-10-20UI: Sort "Volume to Mesh" and "Mesh to Volume" in alphabetical orderPablo Vazquez
2020-10-19Spelling: Then Versus ThanHarley Acheson
Corrects incorrect usages of the words 'then' and 'than'. Differential Revision: https://developer.blender.org/D9246 Reviewed by Campbell Barton
2020-10-19Volumes: new Volume to Mesh modifierJacques Lucke
This modifier is the opposite of the recently added Mesh to Volume modifier. It converts the "surface" of a volume into a mesh. The "surface" is defined by a threshold value. All voxels with a density higher than the threshold are considered to be inside the volume, while all others will be outside. By default, the resolution of the generated mesh depends on the voxel size of the volume grid. The resolution can be customized. It should be noted that a lower resolution might not make this modifier faster. This is because we have to downsample the openvdb grid, which isn't a cheap operation. Converting a mesh to a volume and then back to a mesh is possible, but it does require two separate mesh objects for now. Reviewers: brecht Differential Revision: https://developer.blender.org/D9141