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
2020-06-19Cloth: allow forces to act parallel to cloth.Alexander Gavrilov
Currently all force effectors can only act on cloth when the force is perpendicular to the surface. This makes sense for wind, but not for other forces; and the user may want even wind to have some friction. This changes effector code to output two force vectors - although you of course can pass the same pointer for both. The force is split between the two outputs based on a new per-effector setting. Differential Revision: https://developer.blender.org/D8017
2020-06-19Fix T78024: GPencil - Add missing UV Fill prop to RNAAntonio Vazquez
This was changed in the refactor done in 2.83 and was not included by error.
2020-06-19Alembic: always export transforms as inheritingSybren A. Stüvel
Blender now always exports transforms as as "inheriting", as Blender has no concept of parenting without inheriting the transform. Previously only objects with an actual parent were marked as "inheriting", and parentless objects as "non-inheriting". However, certain packages (for example USD's Alembic plugin) are incompatible with non-inheriting transforms and will completely ignore such transforms, placing all such objects at the world origin. When importing non-inheriting transforms from Alembic, Blender will break the parent-child relation and thus force the child to (correctly) interpret the transform as world matrix.
2020-06-19Alembic: prevent spaces in names of exported particle systemsSybren A. Stüvel
Other types already had spaces, periods, and colons replaced by underscores. The upcoming Alembic exporter (based on the `AbstractHierarcyIterator` class) will be more consistent and apply the same naming rules everywhere. This is in preparation for that change. The `get_…_name()` functions in `abc_util.{cc,h}` will be removed then.
2020-06-19Alembic: export object data with object data nameSybren A. Stüvel
Previously the Alembic exporter exported a mesh object to `{object.name}/{object.name}Shape`. Now it exports to `{object.name}/{mesh.name}` instead. The same change also applies to other object data types. Note that the code now is a bit hackish, as `m_name` is set even in cases where it isn't used. This hackishness was already there, though, but it's now just more visible. This will all be cleaned up when the Alembic exporter is ported to use the `AbstractHierarchyImporter` structure of the Universal Scene Description (USD) exporter. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D7672
2020-06-19IO: ensure export path and export name are always consistentSybren A. Stüvel
Before this, there was one code path that set `context.export_path`, and a different code path for `context.export_name`, allowing the two to diverge. Keeping track of the export path of the export parent (which can be, but is not always, the Blender parent object) also allows a concrete subclass of `AbstractHierarchyIterator` to find the `AbstractWriter` for the export parent. In case of exporting to Alembic this is important, as it's not possible to simply give the Alembic library the full export path of an object like we do in the Universal Scene Description (USD) exporter; Alembic needs the C++ object of the parent.
2020-06-19IO: Allow exporting a subset of the writersSybren A. Stüvel
This is in order to prepare for compatibility with the Alembic exporter. That exporter is capable of writing object transforms and object data at different (sub)frames. The rename from `created_writers` to `used_writers` is necessary, as not all created writers will be actually used in each iteration. The Universal Scene Description (USD) exporter does not make use of this. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D7670
2020-06-19IO: Move Abstract Hierarchy Iterator into `io/common`Sybren A. Stüvel
The goal of the `AbstractHierarchyIterator` class (and supporting classes) was to use it in different exporters. It shouldn't be part of the USD module + namespace any more, now that it will also be used in the upcoming Alembic exporter rewrite. The source files are moved into `io/common`, which is compiled & linked into a new library `bf_io_common`. The unittests are still inside the `tests/gtests/usd` directory. They should be moved to a separate test module too, but that will be delayed until after T73268 has been resolved. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D7669
2020-06-19Fix T77997: GPencil insert keyframe on timeline doen't update viewportAntonio Vazquez
The reason was the datablock is changed but it was not tagged for depsgraph refresh. In some cases it could be possible to tag several times the same datablock, but as this is not the case all the times and the number of tags is always very small, it doesn't worth a complex code to keep a memory list of the datablocks to tag.
2020-06-19Writefile: move file flags to BlendFileWriteParamsCampbell Barton
This removes G_FILE_HISTORY, G_FILE_SAVE_COPY & G_FILE_USERPREFS. Using file-flags made logic harder to follow since it's not so clear which flags are expected to be in G.fileflags & which are meant to be set and passed as arguments, these are shared between read & write functions too. Add BlendFileWriteParams so options which don't need to be stored aren't mixed up with flags that are stored for reuse.
2020-06-19Cleanup: SPACE_ACTION does not have a RGB_TYPE_TOOL_HEADERJeroen Bakker
So no need to check this specific case.
2020-06-19Cleanup: use bool and enums in `match_region_with_redraws`Jeroen Bakker
Function used int for everything.
2020-06-19Fix app-templates not resetting the user interfaceCampbell Barton
Regression in 45b5f4e3dff75
2020-06-19Outliner: Show pose group iconsNathan Craddock
Pose groups previously showed a dot icon. Now it draws the correct icon.
2020-06-19Cleanup: use doxy sectionsCampbell Barton
2020-06-19Cleanup commented separator.Pablo Vazquez
2020-06-19Cleanup: unsupported ATTR_FALLTHROUGH use, clang-formatCampbell Barton
2020-06-18Cleanup: Move snap callbacks to their respective transform modeGermano Cavalcante
These functions are very specific to the mode. More modes can support snap, and there is no reason to keep all callbacks for each mode in the transform_snap.c file.
2020-06-18Fix T78004: Instant crash when Shift+D duplicating a Collection Instance.Bastien Montagne
Dummy mistake in own recent refactor of duplicate code...
2020-06-18UI: Weight Modifiers Falloff: Use better step iconAaron Carlisle
2020-06-18LibOverride: only tag actually changed orig IDs for automatic override diffing.Bastien Montagne
This makes any operation (including mere bone selection) several times faster on some complex production character, since we typically now only need to diff a single ID, instead of tens of them.
2020-06-18LibOverride: Improve performances by using better string hashing function.Bastien Montagne
This is not really huge improvements, but 2% are always good to have.
2020-06-18Depsgraph: use blender::Map instead of std::mapJacques Lucke
We decided to use our own map data structure in general for better readability and performance. Reviewers: sergey Differential Revision: https://developer.blender.org/D7987
2020-06-18LibOverride: increase speed of RNA diffing process.Bastien Montagne
By using own path construction instead of handy printf-like functions, we get a 10% improvement on overall diffing process! This remains way to slow on some complex production characters, but always good to have still.
2020-06-18UI: Place "New Collection" item above list in Move/Link to Collection menuPablo Vazquez
This way "New Collection" is always assigned the same shortcut (N). Whereas previously it would be automatically assigned the leftover key from the list of available collections. Nice side effect is that since N is next to M in most keyboard layouts, moving to a new collection is super fast by hitting M then N. {F8630575, size=full} Paper-cut pointed out by DerekWatts on [devtalk](https://devtalk.blender.org/t/blender-ui-paper-cuts/2596/4211) (thanks!): {F8630492, size=full} Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D8067
2020-06-18Fix for T77095: work around render artifacts with AMD Radeon RX 4xx and 5xxBrecht Van Lommel
2020-06-18Fix T65986: Inaccurate center of mass, calculating mesh centerCampbell Barton
Use a median center of polygons as an initial value for volume center calculation since the volume accumulation quickly generates very large numbers that become inaccurate if the geometry is too far from it's current center.
2020-06-18Fluids: fix variable namesJacques Lucke
This seems to be an error in rBb91b90f0dd3c9bff3b1a6e563c2cce293722ed16. I found it, because I could not open the file in T77263 anymore. Reviewers: sebbas Differential Revision: https://developer.blender.org/D8065
2020-06-18Fix T77764: VSE: snap strip to current frame does not move associatedPhilipp Oeser
effect strips keyframes along Maniphest Tasks: T77764 Differential Revision: https://developer.blender.org/D7996
2020-06-18Fix T77957: Height change in Camera Properties column when changing lens typePhilipp Oeser
Remove unneeded extra column from perspective type properties. Maniphest Tasks: T77957 Differential Revision: https://developer.blender.org/D8060
2020-06-18Allow interpolation of matrices with negative scale / axis flipsSybren A. Stüvel
The matrix interpolation function `interp_m3_m3m3()` decomposes the matrices into rotation and scale matrices, converts the rotation matrices to quaternions, SLERPs the quaternions, and converts the result back to a matrix. Since quaternions cannot represent axis flips, this results in interpolation problems like described in T77154. Our interpolation function is based on "Matrix Animation and Polar Decomposition", by Ken Shoemake & Tom Duff. The paper states that it produces invalid results when there is an axis flip in the rotation matrix (or negative determinant, or negative scale, those all indicate the same thing). Their solution is to multiply the rotation matrix with `-I`, where `I` is the identity matrix. This is the same as element-wise multiplication with `-1.0f`. My proposed solution is to not only do that with the rotation matrix `R`, but also with the scale matrix `S`. This ensures that the decomposition of `A = R * S` remains valid, while also making it possible to conver the rotation component to a quaternion. There is still an issue when interpolating between matrices with different determinant. As the determinant represents the change in volume when that matrix is applied to an object, interpolating between a negative and a positive matrix will have to go through a zero determinant. In this case the volume collapses to zero. I don't see this as a big issue, though, as without this patch Blender would also produce invalid results anyway. Reviewed By: brecht, sergey Differential Revision: https://developer.blender.org/D8048
2020-06-18Tests: added simple unittests for matrix interpolationSybren A. Stüvel
The interpolation of 4x4 and 3x3 matrices will fail when the rotation component has a singularity, i.e. when there is one axis mirrored. Two mirrored axes are just a rotation of 180 degrees around the third, and three mirrored axes are such a rotation + a single axis mirror. To prepare for a fix, I first wanted to cover the basic functionality with a few unit tests. These tests check that `interpolate(A, B, alpha)` always returns `A` for `alpha=0`, always return `B` for `alpha=1`, and something in between for `alpha=0.5`.
2020-06-18Sequencer: revert selection & keymap changes from D7679Campbell Barton
These changes aren't aligned with other timeline selection keymaps (graph & action for e.g.). Revert these changes, shortcuts to time-line editors should take other similar spaces into account.
2020-06-18Fix doc generation for enum & attr's with multi-line descriptionsCampbell Barton
2020-06-18Python API: path mapping options for library writing functionCampbell Barton
When "Relative Remap" option was added, the intention was only to remap paths that were already relative. However it remapped all paths. This was reported as T62612 and fixed recently, however some Python script authors depended on the old behavior. For users, it's reasonable to use the existing operators to make paths absolute/relative. For scripts however it's useful to be able to write out individual data-blocks with the ability to make all paths relative. Now `bpy.data.libraries.write()` takes a path_remap argument which can be `NONE/RELATIVE/RELATIVE_ALL/ABSOLUTE` allowing the script author to choose how paths are handled when writing out data-blocks. Addresses T77768.
2020-06-18Cleanup: remove unnecessary flag clearingCampbell Barton
This is not read from blend files.
2020-06-18BKE_global: No longer read/write G_FILE_HISTORYCampbell Barton
This is a runtime only flag which doesn't make sense to store in the file.
2020-06-18Cleanup: doxy sections for walk/fly operatorsCampbell Barton
2020-06-18Cleanup: redundant parenthesisCampbell Barton
2020-06-18Cleanup: unused variablesCampbell Barton
2020-06-18Fix T75414: Incorrect masking in Color Balance modifierRichard Antalik
Color balance factor was infinity. Clamp to +/- `FLT_MAX` Reviewed By: sergey Differential Revision: https://developer.blender.org/D7884
2020-06-18Cleanup: Remove goto statements from strip rendering functionsRichard Antalik
Remove goto statement from `seq_render_image_strip()` and `seq_render_movie_strip()`. `seq_render_image_strip_view()` and `seq_render_movie_strip_view()` is used to render individual views in both monoview and multiview branch. I have included `seq_can_use_proxy()` for convinience Reviewed By: sybren Differential Revision: https://developer.blender.org/D7870
2020-06-18Fix T73056: Cache not invalidated in fade operatorRichard Antalik
This operator is written in python it is inserting keyframes to create fade effects. Add Sequence.invalidate() python function to invalidate strip if it is changed in python. Perhaps I could implement cache invalidation to actual curve manipulation. I guess it wouldn't be very hard to do but having means to invalidate form python is useful as well. Reviewed By: brecht Differential Revision: https://developer.blender.org/D7885
2020-06-18VSE: Fix assigning effect strip inputsRichard Antalik
Partialy fixes T73828 Currently all 3 effect inputs were assigned even if not all 3 were used. This causes problems with reassigning effects in python, because 3rd input is not accessible. This patch will only assign inputs that are necessary for effect to work properly. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D6868
2020-06-18Cleanup: Remove unused code from `seq_proxy_get_fname()`Richard Antalik
Reviewed By: brecht Differential Revision: https://developer.blender.org/D7868
2020-06-18Fix T66390: Update missing when snaping strips.Richard Antalik
Effect strips bound recalculation was mixed with overlap handling, which caused, that effects wasn't handled. In some cases there may be problem with order of strips in seqbase. We should traverse hierarchy instead. This is design issue that applies to all operators, and should be fixed separately. Reviewed By: brecht Differential Revision: https://developer.blender.org/D7880
2020-06-18Transform: Snap to the intersection between constraint and geometryGermano Cavalcante
This commit changes the behavior of 4 snapping combinations: **1. While constraining to a plane, snap to an edge element:** The snap is made at the intersection between the edge direction and the constraint plane. **2. While constraining to a plane, snap to a face element:** The snap is made to the nearest point between the snap point and the line that intersects the face plane with the constraint plane. **3. While constraining to an axis, snap to an edge/line element:** The snap is made to the nearest point on the axis to the edge/line. **4. While constraining to an axis, snap to a face element:** The snap is made at the intersection of the axis and the plane defined by the face. To avoid unpredictable jumps outside view boundaries, an alignment check is made for each of these snapping combinations. Resolve/fix T66422 Differential Revision: https://developer.blender.org/D5608
2020-06-18Outliner: Fix (unreported) object select in multiple collectionsNathan Craddock
Previous commits to fix parent selection introduced incorrect behavior when selecting objects linked to multiple collections. The clicked object would be selected, but also the first listed object in the tree would be selected. Instead of always searching for a parent object to select, only search back when the selected element is not an ID_OB. This prevents multiple selection of objects linked to multiple collections.
2020-06-17GPencil: Chnage default Vertex Color mode to Stroke and FillAntonio Vazquez
The previous value was Stroke only.
2020-06-17GPencil: Fix unreported Vertex Opacity Overlay not workingAntonio Vazquez
This values was not working because was removed by error in refactor. Reviewed By: mendio, fclem Differential Revision: https://developer.blender.org/D8061