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-03-25Fix, add the ability to add a "processor" grouptemp-geometry-nodes-processor-prototypeHans Goudey
It is broken and doesn't do anything yet
2021-03-25Merge branch 'master' into temp-geometry-nodes-processor-prototypeHans Goudey
2021-03-24GPencil: New modules for Import and ExportAntonio Vazquez
This patch adds support to export and import grease pencil in several formats. Inlude: * Export SVG * Export PDF (always from camera view) * Import SVG The import and export only support solid colors and not gradients or textures. Requires libharu and pugixml. For importing SVG, the NanoSVG lib is used, but this does not require installation (just a .h file embedded in the project folder) Example of PDF export: https://youtu.be/BMm0KeMJsI4 Reviewed By: #grease_pencil, HooglyBoogly Maniphest Tasks: T83190, T79875, T83191, T83192 Differential Revision: https://developer.blender.org/D10482
2021-03-24Cleanup: remove stdio.h header from MEM_guardedalloc.hCampbell Barton
This was included for `FILE *` which isn't used in the header. Ref D10799
2021-03-24Cleanup: use new BLI_assert_unreachable macroCampbell Barton
2021-03-24Add new node tree type for nodes inside attribute processor groupHans Goudey
2021-03-23Cleanup: allow looking up size of unsupported domainsJacques Lucke
There isn't really a reason for not supporting it.
2021-03-23Cleanup: use BLI_assert_unreachable in some placesJacques Lucke
2021-03-23Fix (unreported) object duplicate code wrongly duplicating linked objects.Bastien Montagne
Linked data should only be duplicated if relevant `eDupli_ID_Flags` flag is set (`USER_DUP_LINKED_ID`), this is being taken care of by generic `BKE_id_copy_for_duplicate` function, but for some reasons (?) `BKE_object_duplicate` was directly using `BKE_id_copy` for itself... Note that this had especially bad consequences when duplicating overrides of collections...
2021-03-23LibOverride: Also consider RNA Collection in 'need resync' detection.Bastien Montagne
RNA collections can store lists of ID pointers, so they require a similar handling for RNA pointers.
2021-03-23Curves: add taper mode optionOmar Emara
Currently, when a taper object is specified, the radius of the spline is ignored. This patch adds a new option to control how the taper object affect the effective radius of the spline. The option allow three modes of operation: - Override: The old method. The radius of the spline is ignored and overridden. - Multiply: The radius of the spline is multiplied by the taper radius. - Add: The radius of the spline is added to the taper radius. Ref D10779
2021-03-23Cleanup: de-duplicate gpencil logic to ensure materialsCampbell Barton
- Rename: `BKE_gpencil_object_material_get_index_name`, to `BKE_gpencil_object_material_index_get_by_name` Matching `BKE_gpencil_layer_get_by_name`. - Move logic to ensure named materials into a new function: `BKE_gpencil_object_material_ensure_by_name`
2021-03-22Cleanup: lattices, use `bool is_editmode` instead of `int editmode`Sybren A. Stüvel
Replace `int editmode` with `const bool is_editmode`. No functional changes.
2021-03-22Fix T83638: mirror modifier with mirror object renders wrong motion blurJishan Singh
In this case both the mirror object and object itself moving in time may change the geometry and must be checked. Differential Revision: https://developer.blender.org/D10757
2021-03-22Tracking: Fix movie file prefetch freezing interfaceSergey Sharybin
The issue was caused by the prefetch code having LOCK_MOVIECLIP lock acquired while reading frames from the movie files. The need of the lock was coming from the fact that `clip->anim` can not be accessed from multiple threads, so that was guarded by a lock. The side effect of this lock was that the main thread (from which drawing is happening) did not have any chance passing through it in the cache code because the prefetch happens so quickly. The solution is to create a local copy of the clip with its own anim handler, so that read can happen without such lock. The prefetch is slower by an absolute number in seconds (within 10% in tests here), but it is interactive now.
2021-03-22Fix T86741: Remapping could create doublons of collections in hierarchy.Bastien Montagne
Code rebuilding/ensuring the sanity of the collection hierarchy was not checking for a same collection being child of the same parent multiple times. This was already prevented to happen in code adding collections to other collections, but not for the remapping case.
2021-03-22Fix (unreported) memleak in collection/viewlayer code.Bastien Montagne
In collection/viewlayer synchronization code, in some cases, there are extra unused view layer collections left in old list after all needed ones have been moved to the new list. Found while working on T86741.
2021-03-22Cleanup: remove unexposed nodesJacques Lucke
Those nodes are leftovers from my work on particle nodes and are not needed currently. They can be added back easily if they become necessary.
2021-03-22Cleanup: spelling, expand on commentsCampbell Barton
2021-03-21Cleanup: use static local variablesCampbell Barton
2021-03-21Cleanup: spelling, doxygen comment formattingCampbell Barton
2021-03-19LibOverride: Stash away 'leftover' objects/collections from auto-resync process.Bastien Montagne
Instead of storing those in scne's master collection, which is fairly annoying, we now add them to a (hidden) specific collection. Easy to ignore, or check and cleanup.
2021-03-19Geometry Nodes: Implicit interpolations to and from the edge domainHans Goudey
This patch adds the remaining 6 interpolations for mesh domains. The new interpolations are: - Corner / point / polygon to edge - Edge to corner / point / polygon After this it is possible to adapt an attribute to and from every mesh domain. This is simple to test with the "Attribute Convert" node. Though, as a note for the future, there are still some improvements possible to the interpolations, like lazily calculating values for the interpolations where it's possible, and slightly improving the algorithms used for some interpolations, like using corner angles for polygon to point. Differential Revision: https://developer.blender.org/D10765
2021-03-19LibOverride: fix code trying to auto-resync linked overrides.Bastien Montagne
This is not only potentially extremely expensive, it is also fairly futile, and code is not designed to handle it currently anyway (could easily end up in inifinite loops and other crashes).
2021-03-19Cleanup: remove unused functionCampbell Barton
2021-03-19Python API: Expose CurveProfile Reset View functionPatrick Busch
Allow python access to the `reset_view` functionality which before was only available through the menu. This was suggested for consistency after D10561. Differential Revision: https://developer.blender.org/D10595
2021-03-18Geometry Nodes: Don't create empty components when realizing instancesHans Goudey
Previously even if the input goemetry set had no point cloud or no mesh instances, `geometry_set_realize_instances` would create empty data. This isn't necessarily bad, but it can complicate things down the line if there are a bunch of empty components getting passed around.
2021-03-18LibOverride: Fix missing update after an override reset.Bastien Montagne
We need to brute-force reset IDs with `ID_RECALC_ALL` here...
2021-03-18Fix T86594: Overrides: Possible collection "duplication".Bastien Montagne
Issue was actually in some Collection management code, a bit too eager to add collection to the scene master one when it was not actually needed.
2021-03-18Cleanup: spellingCampbell Barton
2021-03-17Geometry Nodes: Rename "Subdivide Smooth" back to "Subdivision Surface"Hans Goudey
Following concerns raised in the commit that changed the name initially, rB2e19509e60b39837, it makes more sense to keep the "Surface" name for this node because it has a specific meaning that should not be confused with other types of subdivision.
2021-03-17Nodes: Add support to mute node wiresCharlie Jolly
This patch adds the ability to mute individual wires in the node editor. This is invoked like the cut links operator but with a new shortcut. Mute = Ctrl + Alt Cut = Ctrl Dragging over wires will toggle the mute state for that wire. The muted wires are drawn in red with a bar across the center. Red is used in the nodes context to indicate invalid links, muted links and internal links. When a wire is muted it exposes the original node buttons which are normally hidden when a wire is connected. Downstream and upstream links connected using reroute nodes are also muted. Outside scope of patch: - Add support for pynodes e.g. Animation Nodes - Requires minor change to check for muted links using the `is_muted` link property or the `is_linked` socket property. Maniphest Tasks: T52659 Differential Revision: https://developer.blender.org/D2807
2021-03-17Cleanup: remove unnecessary namespace specifiersJacques Lucke
2021-03-17Cleanup: improve gathering supported domains by geometry typeJacques Lucke
2021-03-17Geometry Nodes: store domain and data type in attribute hintsJacques Lucke
The information is not exposed in the attribute search yet.
2021-03-17Bugfix: properly rename Null audio device to NoneJörg Müller
2021-03-17Geometry Nodes: Add initial version of mesh primitivesHans Goudey
This commit includes nodes to build the following primitives: - Cone - Cylinder - Circle - Cube - UV Sphere - Ico Sphere - Line - Plane/Grid In general the inputs are the same as the corresponding operators in the 3D view. **Line Primitive** The line primitive has two modes-- adding vertices between two end points, or adding vertices each at an offset from the start point. For the former mode, there is a choice between a vertex count and a distance between each point. **Plane Primitive** This commit includes the "Plane" and "Grid" primitives as one node. Generally primitives are named after the simpler form of the shape they create (i.e. "Cone" can make some more complex shapes). Also, generally you want to tweak the number of subdivisions anyway, so defaulting to plane is not an inconvenience. And generally having fewer redundant base primitives is better. **Future Improvements** A following patch proposes to improve the speed of the cylinder, cone, and sphere primitives: D10730. Additional possible future improvements would be adding subdivisions to the cube node and rings to the cone and cylinder nodes. Differential Revision: https://developer.blender.org/D10715
2021-03-16Grease Pencil: Add LineArt modifierYimingWu
This adds the LineArt grease pencil modifier. It takes objects or collections as input and generates various grease pencil lines from these objects with the help of the active scene camera. For example it can generate contour lines, intersection lines and crease lines to name a few. This is really useful as artists can then use 3D meshes to automatically generate grease pencil lines for characters, enviroments or other visualization purposes. These lines can then be baked and edited as regular grease pencil lines. Reviewed By: Sebastian Parborg, Antonio Vazquez, Matias Mendiola Differential Revision: http://developer.blender.org/D8758
2021-03-16LibOverride: Resync: Fix most remaining 'overrides in master collection' issues.Bastien Montagne
Problem is, when a collection is excluded from the scene, none of its objects are technically instantiated. This should not happen when *creating* an override, but can be fairly common during resync process. For now, use a lesser precise check in resync case, only relying on object usercount. This might lead to some objects being left without any collection in some rare weird case, but this cannot really be avoided currently.
2021-03-16LibOverride: Resync: Fix too many objects being rooted in master collection.Bastien Montagne
No need to instantiate systematically the root object if it is already instantiated in the scene... Issue reported by the studio.
2021-03-16LibOverride: tweak log messages, fix crash in log code.Bastien Montagne
One of the log call could use freed memory.
2021-03-16Fix: Cryptomatte load corrupt manifests.Jeroen Bakker
Seems like one of the example files on the cryptomatte github is malformed and blender crashes when loading that file. This change will try to load as much as possible from the manifest so it can still be used. This has also been reported to cryptomatte project.
2021-03-16Compositor: Redesign Cryptomatte node for better usabilityJeroen Bakker
In the current implementation, cryptomatte passes are connected to the node and elements are picked by using the eyedropper tool on a special pick channel. This design has two disadvantages - both connecting all passes individually and always having to switch to the picker channel are tedious. With the new design, the user selects the RenderLayer or Image from which the Cryptomatte layers are directly loaded (the type of pass is determined by an enum). This allows the node to automatically detect all relevant passes. Then, when using the eyedropper tool, the operator looks up the selected coordinates from the picked Image, Node backdrop or Clip and reads the picked object directly from the Renderlayer/Image, therefore allowing to pick in any context (e.g. by clicking on the Combined pass in the Image Viewer). The sampled color is looked up in the metadata and the actual name is stored in the cryptomatte node. This also allows to remove a hash by just removing the name from the matte id. Technically there is some loss of flexibility because the Cryptomatte pass inputs can no longer be connected to other nodes, but since any compositing done on them is likely to break the Cryptomatte system anyways, this isn't really a concern in practise. In the future, this would also allow to automatically translate values to names by looking up the value in the associated metadata of the input, or to get a better visualization of overlapping areas in the Pick output since we could blend colors now that the output doesn't have to contain the exact value. Idea + Original patch: Lucas Stockner Reviewed By: Brecht van Lommel Differential Revision: https://developer.blender.org/D3959
2021-03-15Fix T86262: Tracking backwards fails after gap in trackSergey Sharybin
The issue was caused by a prediction algorithm detecting tracking the wrong way. Solved by passing tracking direction explicitly, so that prediction will always happen correctly regardless of the state of the Tracks context.
2021-03-15Tracking: Mention TODO about DNA to Libmv API conversionSergey Sharybin
Current code works, but is heavily relying on matched enum definition in the Blender's DNA and Libmv's API, which is suboptimal and fragile.
2021-03-15Geometry Nodes: expose builtin crease attributeJacques Lucke
This exposes the `crease` attribute, that is used by the Subdivide Smooth node. It is also the first attribute on the edge domain. Domain interpolations for the edge domain have not been implemented yet. Ref T86397. Differential Revision: https://developer.blender.org/D10660
2021-03-15LibOverride: Add checks to address some degenerate blend file casesBastien Montagne
Attempt to work around some full-corruption cases created at the studio. Not clear how those were created, so not really fixing anything here, just detecting and 'solving' as best as possible some high corruption of local overrides. This is good to have in general anyway, might help prevent further corruption to happen too.
2021-03-15Spreadsheet: add status barJacques Lucke
This implements the status bar as footer region in the spreadsheet editor. It shows the total number of rows and columns as well as how many rows are actually visible (based on the filter). The implementation stores the stats in a runtime struct during drawing and the status bar reads from that struct. Ref T86142. Differential Revision: https://developer.blender.org/D10693
2021-03-15Cleanup: clang modernize-use-override errors.Jeroen Bakker
2021-03-15Writefile: only include recovery info in auto-save & quit.blendCampbell Barton
Previously all blend files included the path they were saved, causing files distributed publicly to include users local paths. This also included developers home directories for startup & userprefs defaults & app-templates bundled with Blender. Now recovery information is only written for auto-save & quit.blend since this is the only time they're intended to be used.