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
2022-03-01Fix T96030: Update Image editor after reload.Jeroen Bakker
2022-03-01Fix 3d texture painting artifacts.Jeroen Bakker
When dimension of images aren't a multifold of 256 parts of the gpu textures are not updated. This patch will calculate the correct part of the image that needs to be reuploaded.
2022-03-01Fix painting on none 256 aligned images.Jeroen Bakker
Internally the update tiles are 256x256. Due to some miscalculations tiles were not generated correctly if the dimension of the image wasn't a multifold of 256.
2022-03-01Cleanup: use doxygen comments, correct spellingCampbell Barton
Also move eDupli_ID_Flags doc-string to it's declaration.
2022-03-01Fix: Don't tag curves component cache dirty for radiusHans Goudey
Changing the radius does not invalidate a cache on `CurvesGeometry`.
2022-03-01Fix: Use correct default in Curves to CurveEval conversionHans Goudey
Currently the code expects the radius attribuet to always exist on the input Curves. This won't be true in the future though, so the correct default value of one should be used when creating the data on CurveEval, where the data is not optional.
2022-03-01Curves: Add method to access cyclic attributeHans Goudey
Avoids the need to use the attribute API to access this commonly used builtin attribute.
2022-02-28Nodes: Improve readability of selected node linksLeon Schittek
This commit improves the drawing of selected node links: - Highlight the entire link to make it easier to spot where the link is going/coming from. - Always draw selected links on top, so they are always clearly visible. - Don't fade selected node links when the sockets they are connected to are out out view. - Dragged node links still get a partial highlight when they are only attached to one socket. Differential Revision: https://developer.blender.org/D11930
2022-02-28Merge branch 'blender-v3.1-release'Brecht Van Lommel
2022-02-28Fix T92288, T96041: instancing of shared mesh objects without modifiers brokenBrecht Van Lommel
New code from the vertex normal refactor cfa53e0fbeed combined with older code from 592759e3d62a that disabled instancing for custom normals and autosmooth meant that instancing was always disabled. However we do not need to disable instancing for custom normals and autosmooth at all, this can be shared between instances just fine.
2022-02-28Cleanup: Rename geometry set "curve" functions to "curves"Hans Goudey
Ref T95355
2022-02-28Geometry Nodes: Begin conversion to new curvesHans Goudey
This commit changes `CurveComponent` to store the new curve type by adding conversions to and from `CurveEval` in most nodes. This will temporarily make performance of curves in geometry nodes much worse, but as functionality is implemented for the new type and it is used in more places, performance will become better than before. We still use `CurveEval` for drawing curves, because the new `Curves` data-block has no evaluated points yet. So the `Curve` ID is still generated for rendering in the same way as before. It's also still needed for drawing curve object edit mode overlays. The old curve component isn't removed yet, because it is still used to implement the conversions to and from `CurveEval`. A few more attributes are added to make this possible: - `nurbs_weight`: The weight for each control point on NURBS curves. - `nurbs_order`: The order of the NURBS curve - `knots_mode`: Necessary for conversion, not defined yet. - `handle_type_{left/right}`: An 8 bit integer attribute. Differential Revision: https://developer.blender.org/D14145
2022-02-28Cleanup: Move mesh_validate.c to C++Hans Goudey
This patch was tested on the build bots on all platforms.
2022-02-28Merge branch 'blender-v3.1-release'Bastien Montagne
2022-02-28Fix T96048: Crash on appending with driver variables loop in shapekeys.Bastien Montagne
The usual 'shape keys snowflake' nightmare again...
2022-02-28Animation: Sensible frame range for motion pathsColin Marmont
Motion paths can now be initialised to more sensible frame ranges, rather than simply 1-250: - Scene Frame Range - Selected Keyframes - All Keyframes The Motion Paths operators are now also added to the Object context menu and the Dopesheet context menu. The scene range operator was removed, because the operators now automatically find the range when baking the motion paths. The clear operator now appears separated in "Selected Only" and "All", because it was not clear for the user what the button was doing. Reviewed By: sybren, looch Maniphest Tasks: T93047 Differential Revision: https://developer.blender.org/D13687
2022-02-27Fix: Incorrect assert in curves codeHans Goudey
The attribute data might be null if the number of curves is zero. While that is not common, an empty curves data-block is valid.
2022-02-26Cleanup: Mesh normal calculation comments and logicHans Goudey
Some logic and comments in the vertex normal calculation were left over from when normals were stored in MVert, before cfa53e0fbeed7178c7. Normals are never allocated and freed locally anymore.
2022-02-26Merge branch 'blender-v3.1-release'Hans Goudey
2022-02-26Fix: Failing OBJ export tests due to mesh normals commitHans Goudey
In some cases, the normal edit modifier calculated the normals on one mesh with the "ensure" functions, then copied the mesh and retrieved the layers "for write" on the copy. Since 59343ee1627f4c369e23, normal layers are never copied, and normals are allocated with malloc instead of calloc, so the mutable memory was uninitialized. Fix by calculating normals on the correct mesh, and also add a warning to the "for write" functions in the header.
2022-02-26Fix compile warning from earlier commit.Kévin Dietrich
2022-02-25Merge remote-tracking branch 'origin/blender-v3.1-release'Kévin Dietrich
2022-02-25Disable GPU subdivision if autosmooth or split normals are usedKévin Dietrich
These features are complicated to support on GPU and hardly compatible with subdivision in the first place. In the future, with T68891 and T68893, subdivision and custom smooth shading will be separate workflows. For now, and to better prepare for this future (although long term plan), we should discourage workflows mixing subdivision and custom smooth normals, and as such, this disables GPU subdivision when autosmoothing or custom split normals are used. This also adds a message in the modifier's UI to indicate that GPU subdivision will be disabled if autosmooth or custom split normals are used on the mesh. Differential Revision: https://developer.blender.org/D14194
2022-02-25Fix: Only possible to create one 8 bit integer attributeHans Goudey
The custom data code checks for `LayerTypeInfo.defaultname` before adding a second layer with a certain type. This was missed in e7912dfa1959be671f77e4e67eab. In practice, this default name is not actually used.
2022-02-25Curves: add surface object pointerJacques Lucke
Ref T95776. Differential Revision: https://developer.blender.org/D14182
2022-02-25LibOverrides: fix handling of hierarchy root in complex cases.Bastien Montagne
This affects essentially the Outliner 'create hierarchy' tool currenlty. Previously code did not handle properly hierarchy root in case overrides where created from a non-root ID (e.g. an object inside of a linked collection), and in case additional partial overrides were added to an existing partially overrided hierarchy. Also did some renaming on the go to avoid using 'reference' in override context for anything else but the reference linked IDs.
2022-02-24Curves: Use simpler "set" behavior for postion attributeHans Goudey
This is similar to f8fe0e831ec14cc521e03df, which made the change to the handle position attributes. This commit removes the way that setting the `position` attribute also changes the handle position attributes. Now, the "Set Position" node still has this behavior, but changing the attribute directly (with the modifier's output attributes) does not. The previous behavior was a relic of the geometry nodes design from before fields and the set position node existed. This makes the transition to the new curves data structure simpler. There is more room for optimizing the Bezier case of the set position node in the future.
2022-02-24Cleanup: code comments in vfont_to_curveCampbell Barton
2022-02-24Cleanup: remove dead code in vfont_to_curveCampbell Barton
Also replaces numbers with character literals for tab/space.
2022-02-24Cleanup: remove dead code from text wrapping logicCampbell Barton
Error from original commit in 2005, 97df61a7e5391e302d1a5f9069cf0b388f85e0c8.
2022-02-24Cleanup: use continue instead of goto for 3D text wrapping logicCampbell Barton
2022-02-24Merge branch 'blender-v3.1-release'Campbell Barton
2022-02-24Fix T95116: Scale to fit fails with a single word & non-zero Y-sizeCampbell Barton
The scale-to-fit option did nothing for single words when the text box had a height. This happened because it was expected that text would be wrapped however single words never wrap. Now the same behavior for zero-height text boxes is used when text can't be wrapped onto multiple lines.
2022-02-23Curves: Use simpler "set" behavior for handle position attributesHans Goudey
The handle position attributes `handle_left` and `handle_right` had rather complex behavior to get expected behavior when aligned or auto/ vector handles were used. In order to simplify the attribtue API and make the transition to the new curves data structure simpler, this commit moves that behavior from the attribute to the "Set Handle Positions" node. When that node is used, the behavior should be the same as before. However, if the modifier's output attributes were used to set handle positions, the behavior may be different. That situation is expected to be very rare though.
2022-02-23Geometry Nodes: Face is Planar NodeJohnny Matthews
This adds a node with a boolean field output which returns true if all of the points of the evaluated face are on the same plane. A float field input allows for the threshold of the face/point comparison to be adjusted on a per face basis. One clear use case is to only triangulate faces that are not planar. Differential Revision: https://developer.blender.org/D13906
2022-02-23Fix for last commit: Define for Node numberingJohnny Matthews
2022-02-23Curves: initial brush implementations for curves sculpt modeJacques Lucke
The main goal here is to add the boilerplate code to make it possible to add the actual sculpt tools more easily. Both brush implementations added by this patch are meant to be prototypes which will be removed or refined in the coming weeks. Ref T95773. Differential Revision: https://developer.blender.org/D14180
2022-02-23Geometry Nodes: Duplicate Elements NodeJohnny Matthews
This adds a node which copies part of a geometry a dynamic number of times. Different parts of the geometry can be copied differing amounts of times, controlled by the amount input field. Geometry can also be ignored by use of the selection input. The output geometry contains only the copies created by the node. if the amount input is set to zero, the output geometry will be empty. The duplicate index output is an integer index with the copy number of each duplicate. Differential Revision: https://developer.blender.org/D13701
2022-02-23Merge branch 'blender-v3.1-release'Hans Goudey
2022-02-23Fix T95987: Data transfer modifier custom normals crashHans Goudey
59343ee1627f4c369e missed one case of normals being retrieved from polygon custom data instead of the normals API. The fix is simple.
2022-02-23Curves: Add methods to retrieve range for points or curvesHans Goudey
2022-02-23NDOF: make camera view/pan behavior optionalCampbell Barton
User request since adding this option in: 51975b89edfcc02131f1f8248e1b3442ea2778fa When disabled, use the previous behavior when orbiting a camera view.
2022-02-23Cleanup: Remove repeated word in commentsCampbell Barton
2022-02-23Fix: Errors in previous cleanup commitHans Goudey
f3ef0763b41155e623 introduced a file by mistake, and didn't add a new enum type to many switch cases. Sorry for the noise.
2022-02-23Cleanup: Use new curves type enum for CurveEvalHans Goudey
Though this is less aesthetically pleasing, it makes the transition to the new curves type (T95941) a bit simpler, and it has to be done anyway.
2022-02-23CMake: include missing filesCampbell Barton
Also use SRC_ prefix for source variables so cmake_consistency_check.py detects these files as being known to CMake.
2022-02-23Cleanup: Use new enum for CurveEval handle typesHans Goudey
This will make the transition to the new curves data structure a bit simple, since the handle types can be copied directly between the two. The change to CurveEval is simple because it is runtime-only.
2022-02-22Cleanup: Remove unused mesh dirty flagsHans Goudey
These were only set in two places. One was related to "tessellated loop normal", and the other derived corner normals. The values were never checked though, after 59343ee1627f4c369. The handling of dirty face corner normals is clearly problematic, but in the future it should be handled like the normal layers on the other domains instead. Ref D14154, T95839
2022-02-22Merge branch 'blender-v3.1-release'Hans Goudey
2022-02-22Fix T95839: Data race when lazily creating mesh normal layersHans Goudey
Currently, when normals are calculated for a const mesh, a custom data layer might be added if it doesn't already exist. Adding a custom data layer to a mesh is not thread-safe, so this can be a problem in some situations. This commit moves derived mesh normals for polygons and vertices out of `CustomData` to `Mesh_Runtime`. Most of the hard work for this was already done by rBcfa53e0fbeed7178. Some changes to logic elsewhere are necessary/helpful: - No need to call both `BKE_mesh_runtime_clear_cache` and `BKE_mesh_normals_tag_dirty`, since the former also does the latter. - Cleanup/simplify mesh conversion and copying since normals are handled with other runtime data. Storing these normals like other runtime data clarifies their status as derived data, meaning custom data moves more towards storing original/editable data. This means normals won't automatically benefit from the planned copy-on-write refactor (T95845), so it will have to be added manually like for the other runtime data. Differential Revision: https://developer.blender.org/D14154