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-24Geometry Nodes: add versioning for attribute fillJacques Lucke
The attribute domain of old nodes should be set to `ATTR_DOMAIN_AUTO`.
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-22Cleanup: clang-format, trailing spaceCampbell Barton
Minor manual tweak to prevent wrapping an array into columns.
2021-03-22Cleanup: Don't use class method to override equality operatorHans Goudey
This won't make a difference in this case, but it's consider better practice since there is no vagueness about implicit conversion.
2021-03-21Functions: refactor virtual array data structuresJacques Lucke
When a function is executed for many elements (e.g. per point) it is often the case that some parameters are different for every element and other parameters are the same (there are some more less common cases). To simplify writing such functions one can use a "virtual array". This is a data structure that has a value for every index, but might not be stored as an actual array internally. Instead, it might be just a single value or is computed on the fly. There are various tradeoffs involved when using this data structure which are mentioned in `BLI_virtual_array.hh`. It is called "virtual", because it uses inheritance and virtual methods. Furthermore, there is a new virtual vector array data structure, which is an array of vectors. Both these types have corresponding generic variants, which can be used when the data type is not known at compile time. This is typically the case when building a somewhat generic execution system. The function system used these virtual data structures before, but now they are more versatile. I've done this refactor in preparation for the attribute processor and other features of geometry nodes. I moved the typed virtual arrays to blenlib, so that they can be used independent of the function system. One open question for me is whether all the generic data structures (and `CPPType`) should be moved to blenlib as well. They are well isolated and don't really contain any business logic. That can be done later if necessary.
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-17BLI: provide a default hash for enumsJacques Lucke
This avoids some boilerplate code that was necessary when using enums as keys in maps or sets.
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-17Cryptomatte: Show Name of Object/Material Under The Cursor.Jeroen Bakker
This change shows the object or material name with the cursor when picking for a cryptomatte node. Reviewed By: Julian Eisel Differential Revision: https://developer.blender.org/D10705
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-16VSE: Simplify proxy settingsRichard Antalik
- Remove Full Render size from VSE preview size. Use just 100% instead. - Add Use Proxies checkbox to control whether proxies are used globally - Move preview size to top so it is most prominent - Set default to 100% preview size and use proxies Reviewed By: sergey, fsiddi Differential Revision: https://developer.blender.org/D10362
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