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-03-09Sculpt: Edge AutomaskingPablo Dobarro
This automasking option protects the open boundary edges of the mesh from the brush deformation. This is needed to sculpt cloths and it works nicely with the cloth brush. It has a Propagation Steps property that controls the falloff of the mask from the edge. Limitations: - The automask is recalculated at the beginning of each stroke, creating a little bit of lag in high poly meshes, but it is not necessary. This can be fixed in the future by caching the edge distances, increasing a little bit the complexity of the code. - The boundary vertex detection in meshes is not ideal and it fails with triangulated geometry, but it is the same as in the smooth brush. After fixing this, we should refactor the smooth brush to use the API and let the automasking option manually control the affected vertices. - It does not work in Multires (it needs to be implemented in the API). The smooth brush in Multires is also not making boundary vertices. - The falloff has a visible line artifact on grid patterns. We can smooth the final automasking factors several iterations, but it will make the initialization much slower. This can also be added in the future if we decided to cache the distances. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D6705
2020-03-09Face Sets: Use white color for a default Face Set to enable the overlayPablo Dobarro
This introduces a variable to store a face set ID which is going to be rendered white. When initializing a mesh or randomizing the colors, this variable gets updated to always render a white face set. This way the face set overlay can be enabled without adding colors to the mesh if face sets are not in use. After creating the first face set, new colors are generated randomly like usual. The face set stored as default does not have any special meaning for tools or brushes, it just affects the rendering color. Reviewed By: brecht Differential Revision: https://developer.blender.org/D7035
2020-03-09Alembic: constraint for transform animation is using world matrix againSybren A. Stüvel
In rB7c5a44c71f13 I changed the way transform matrices are loaded from Alembic. Instead of having the Alembic importer convert matrices from local (in the Alembic file) to World (to pass to the constraint handling the animation of transforms), I set the constraint space to `CONSTRAINT_SPACE_LOCAL`. This worked thanks to rB7728bfd4c45c. However, that commit was reverted, which meant that for parentless objects `CONSTRAINT_SPACE_LOCAL` no longer means "local space". The situation is resolved by setting the constraint to world space again, and computing the world matrix in the Alembic importer.
2020-03-09GPencil: Refactor of Draw Engine, Vertex Paint and all internal functionsAntonio Vazquez
This commit is a full refactor of the grease pencil modules including Draw Engine, Modifiers, VFX, depsgraph update, improvements in operators and conversion of Sculpt and Weight paint tools to real brushes. Also, a huge code cleanup has been done at all levels. Thanks to @fclem for his work and yo @pepeland and @mendio for the testing and help in the development. Differential Revision: https://developer.blender.org/D6293
2020-03-06Cleanup: Rename ARegion variables from ar to regionJulian Eisel
The old convention was easy to confuse with ScrArea. Part of https://developer.blender.org/T74432. This is mostly a batch rename with some manual fixing. Only single word variable names are changed, no prefixed/suffixed names. Brecht van Lommel and Campbell Barton both gave me a green light for this convention change. Also ran clan clang format on affected files.
2020-03-06Cleanup: move Alembic, AVI, Collada, and USD to `source/blender/io`Sybren A. Stüvel
This moves the `alembic`, `avi`, `collada`, and `usd` modules into a common `io` directory. This also cleans up some `#include "../../{somedir}/{somefile}.h"` by adding `../../io/{somedir}` to `CMakeLists.txt` and then just using `#include "{somefile}.h"`. No functional changes.
2020-03-06Cleanup: avoid use of BLI_cleanup_dirCampbell Barton
Some cases don't need to add the trailing slash. Use BLI_cleanup_path in this case.
2020-03-06Cleanup: spellingCampbell Barton
2020-03-06Nodes: fix writing socket default values to fileJacques Lucke
Previously, `writedata` was used to store `bNodeSocket->default_value`. There are a couple of issues with that: * Breaks if someone tries to load the file on a big endian system (afaik). * There is a `/* do not use for structs */` comment on `writedata`. * Depends on `MEM_allocN_len` which should be avoided in my opinion. * Now it is more apparent, that this should be handled by callbacks as well. The part in `readfile.c` should work just fine still. I could also do a case distinction there, but the code would be the same for every case for now. Just `sock->default_value = newdataadr(fd, sock->default_value);`. This might change, if we want to store more complex socket type specific data that does not fit into a single struct. Differential Revision: https://developer.blender.org/D7039 Reviewers: brecht
2020-03-06Cleanup: use 'BKE_' prefix for BKE_deform API callsCampbell Barton
- Use 'BKE_object_defgroup' prefix for object functions. - Rename 'defvert_verify_index' to 'defvert_ensure_index' since this adds the group if it isn't found.
2020-03-05Sculpt Face SetsPablo Dobarro
Face Sets are the new system to control the visibility state of the mesh in sculpt and paint modes. They are designed to work in modes where brushes are the primary way of interaction and they provide much more control when working with meshes with complex shapes and overlapping surfaces. This initial commit includes: - Sculpt Face Sets data structures and PBVH rendering. - Face Set overlay and opacity controls. - Sculpt Undo support. - Remesher reprojection support. The visibility state of the mesh is also preserved when remeshing. - Automasking and Mesh filter support. - Mask expand operator mode to expand Face Sets (Shift + W) and flood fill areas by connectivity (press Ctrl while expanding). - Sculpt Mode Face Sets and Visibility API. - Sculpt Face Sets creation and visibility management operators. - Operator to randomize the Face Sets colors. - Draw Face Sets brush tool to create and edit the Face Sets. Drawing on the mesh creates a new Face Set. Pressing Ctrl before drawing modifies the Face Set under the brush at the beginning of the stroke. - Updated keymap and menu to work with Face Sets from Sculpt Mode (H to toggle visibility, Alt + H to show all, Shit + H to hide). - Pie menu on the W key with Face common Sets operations. Know limitations: - Multires support. The Face Sets and Visibility API needs to be implemented for Multires. Reviewed By: jbakker, #user_interface, Severin Differential Revision: https://developer.blender.org/D6070
2020-03-05Add an session-wise uuid integer to IDs.Bastien Montagne
"session-wise" here mean while editing a same .blend file. So creating or opening a new one will reset the uuid counter. This should avoid any overflow in practice. Only IDs added to Main database get an uuid, runtime-only ones are not affected. This is intended to provide undo with a way to find IDs across several 'memory realms' (undo speedup project). No behavior change is expected from this commit itself. Part of T60695. Differential Revision: https://developer.blender.org/D7007
2020-03-05Cleanup: material API namingCampbell Barton
- Use 'BKE_object_material_*', 'BKE_id_material_*' prefix for functions that operate on Object and ID types. - Use '_len' suffix for length (matching BLI naming). - Use '_p' suffix for functions that return a pointer to values where the value would typically be returned. Functions renamed: - BKE_object_material_resize was BKE_material_resize_object - BKE_object_material_remap was BKE_material_remap_object - BKE_object_material_remap_calc was BKE_material_remap_object_calc - BKE_object_material_array_p was BKE_object_material_array - BKE_object_material_len_p was BKE_object_material_num - BKE_id_material_array_p was BKE_id_material_array - BKE_id_material_len_p was BKE_id_material_num - BKE_id_material_resize was BKE_material_resize_id - BKE_id_material_append was BKE_material_append_id - BKE_id_material_pop was BKE_material_pop_id - BKE_id_material_clear was BKE_material_clear_id
2020-03-03IDs: change FILTER_ID_* to 64 bit to make space for new ID typesBrecht Van Lommel
And change file browser to boolean from bitflag enum, which is only 32 bit. Differential Revision: https://developer.blender.org/D7004
2020-03-03Cleanup: formatting, spellingCampbell Barton
2020-03-01Fix T74307: Add missing brushes to versioning_defaultsPablo Dobarro
At least a brush under each tool needs to exist by default in the blend file to reset its properties. If it does not exist, the user needs to reset it manually. Reviewed By: brecht Maniphest Tasks: T74307 Differential Revision: https://developer.blender.org/D6972
2020-02-28UI: add theme option for grid levels to display in node editor backgroundPawel Franitza
Differential Revision: https://developer.blender.org/D6916
2020-02-25UI: Add theme option for time markers lineMichael Soluyanov
This patch adds the ability to set colors and alpha of dashed line of Time Markers. That way themes can avoid contrast issues and communicate selection better. See screenshots in D6877. Bumps subversion. Reviewed By: William Reynish, Julian Eisel Differential Revision: https://developer.blender.org/D6877
2020-02-25GPU: Add Image property to allow high bitdepth support on a per image basisClément Foucault
This adds the `Half Float Precision` option in the image property panel. This option is only available on float textures and is enabled by default. Adding a flag inside the imbuf (IB_halffloat) on load is done for EXR and PSD formats that can store half floating point (16bits/channels). The option is then not displayed in this case and forced. Related task T73086 Reviewed By: brecht Differential Revision: https://developer.blender.org/D6891
2020-02-25EEVEE: Lookdev: Add support for partially blurred backgroundClément Foucault
This is using the GGX probe as background. This has the drawback of having the resolution choosed in the indirect lighting setting. The blurring is not really high-quality. The pros is that it has a simple implementation and is fast to evaluate. This patch also fades the background alpha to make overlay engine draw the default background color in the correct color space. Removing one colorspace hack. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D6895
2020-02-25Cleanup: move deprecated enum into versioning codeCampbell Barton
2020-02-20Fix some issues with versionning of older files.Bastien Montagne
Consequences of own refactor of usercount handling in readfile.c (rB367ecff15d74). Not super happy to have to call that function twice, but that should be OK (not a real overhead here anyway).
2020-02-20Cleanup: unused structsCampbell Barton
2020-02-20Cleanup: unused enumsCampbell Barton
2020-02-19Fix T54270: Reset last_hit and last_location when reading the filePablo Dobarro
It does not make sense to read those values when loading a file and they can crash the cursor if they contain invalid coordinates. Reviewed By: brecht Maniphest Tasks: T54270 Differential Revision: https://developer.blender.org/D6754
2020-02-19readfile: Move ID refcounting to libquery.Bastien Montagne
Having that extra ID users handling at readfile level, besides generic one ensured by libquery, has been something bothering me for a long time (had to fix my share of bugs due to mismatches between those two areas). Further more, work on undo speedup will require even more complex ID refcount management if we want to keep it in readfile.c area. So idea is instead to generalize what we did for linked data already when undoing: recompute properly usercount numbers after liblink step, for all IDs. Note that extra time required here is neglectable in a whole .blend file reading (few extra milliseconds when loading a full production scene e.g.). Notes: * Some deprecated data (IPOs) are not refcounted at all anymore, this should not be an issue in pratice since the are supposed to get deleted after doversion anyway. * Refcounting happens after `do_versions_after_linking`, i.e those functions won't get valid ID usercounts currently. Again, this is not a problem in current code, if needed we could recompute refcount before, and then ensure `do_versions_after_linoiing()` actually handles properly usercount, which it does not currently. Differential Revision: https://developer.blender.org/D6881
2020-02-18Fix crash loading .blend file saved with Blender 2.25Brecht Van Lommel
pathJumper.blend from 2.25 release demo files in demos225.zip
2020-02-18Fix T62612: Saving with "Remap Relative" makes ALL paths relativeCampbell Barton
2020-02-17Shading: add direction modes and phase offset to wave texture nodeBartosz Moniewski
* Direction mode X, Y and Z to align with axes rather than diagonal or spherical as previously. X is the new default, existing files will use diagonal or spherical for compatibility. * Phase offset to offset the wave along its direction, for purposes like animation and distortion. https://developer.blender.org/D6382
2020-02-17Fix many typos and other issues in UI messages.Bastien Montagne
2020-02-15Cleanup: remove unused RenderData.displaymodeCampbell Barton
2020-02-15Modifiers: Add option to directly specify a 2D transform for UVWarpLukas Stockner
Currently the only option is to warp based on the transform of other objects, which is inconvenient if you want to e.g. control it through a driver - you need to set up a dummy object and go through that, which is clunky and should be unneccessary. Reviewed By: brecht Differential Revision: https://developer.blender.org/D6690
2020-02-15Cleanup: clang-formatCampbell Barton
2020-02-14Alembic: refactor import and export of transformationsSybren A. Stüvel
The Alembic importer now works with local coordinates. Previously, the importer converted transformations from Alembic to world coordinates before processing them further; this processing often included re-converting to local coordinates. This change made it possible to remove some code that assumed that a child transform was only read after its parent transform. Blender's Alembic code follows the Maya convention, where in the zero orientation the camera looks forward instead of down. This extra rotation is now handled more consistently, and now also properly handles children of cameras. This fixes T73269. Unit tests were added to at least ensure that the importer and exporter are compatible with each other, and that static and animated camera transforms are handled in the same way.
2020-02-14BKE: Version Bump to 2.82.3Clément Foucault
Needed to avoid double fix of sun lights bias.
2020-02-14EEVEE: Shadow: Fix cascade shadowmap bias multiplicatorClément Foucault
This fixes the issue where sun shadowmaps needs a very big bias value to make any difference. The bias is now in world space and not dependant on shadow bounds. Unfortunatelly this breaks compatibility with previous version and old scene are likely to need user intervention to fix. Also fixes the property range. Fix T71661 EEVEE shadow from sun on incorrect face
2020-02-14Fix minor issue with new libraries ID usercount.Bastien Montagne
Library data-blocks are supposed to be tagged as 'real user', i.e. have one virtual user, since nothing else actually uses (refcounts) them. That was done in liblink code, but not for newly added ID-LI IDs when linking from a new libblend file e.g.
2020-02-13Cleanup old special cases from some libquery callbacks.Bastien Montagne
We now have proper flagging for horrible loopback pointers...
2020-02-13Refactor libquery ID looper callback to take a single parameter.Bastien Montagne
Using a struct here allows to change given parameters to the callbacks without having to edit all callbacks functions, which is always noisy and time consuming.
2020-02-12Fix T73446: WorkSpace ID properties not savedCampbell Barton
2020-02-11Sculpt: Split normal radius and area radiusPablo Dobarro
This enables an extra layer of control in the sculpt brushes. For now it is enabled only in Scrape, but it should work in all brushes (like normal radius). In the future it may also be enabled in other brushes. You can tweak in this property in the scrape brush to achieve a much better behavior when working on curve surfaces and control how much volume you want to trim. In most cases, it also fixes the bug where the brush keeps trimming in the same area without disabling accumulate. It should be possible to fix some other artifacts in other brushes by tweaking this default property. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D5993
2020-02-11Sculpt: Clay Strips Tip Roundness propertyPablo Dobarro
This patch allow to change the brush tip shape between a square and a circle using a brush property. After this change we are no longer testing the distance against a cube (the Z axis is not used). I did not test this in depth, but if it does not produce any artifacts I think we can keep it this way instead of adding more complexity to the code. In this new distance test the brush falloff is only applied on the rounded parts of the square to avoid sharp artifacts in the diagonals. Because of this, the round version is much softer than the square one. The planned hardness property will fix this, but this can also be avoided by setting the fallof to a custom curve. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D6165
2020-02-11Pose Brush: Option to disable the IK anchor pointPablo Dobarro
The IK chain was using an anchor point by default as it makes sense for posing, but for creating curved shapes it is useful to be able to disable it. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D6584
2020-02-10Cleanup: Rename `BKE_library_override_` functions to `BKE_lib_override_library_`Bastien Montagne
pqrt of T72604.
2020-02-10Refactor: move `Library`-specific functions into proper `BKE_library` file.Bastien Montagne
Even though we do not have much of those, this might change in the future, and in any case having specific functions for this ID type in generic `BKE_lib` area was really confusing.
2020-02-10Cleanup/refactor: Rename `BKE_library` files to `BKE_lib`.Bastien Montagne
Note that `BKE_library.h`/`library.c` were renamed to `BKE_lib_id.h`/`lib_id.c` to avoid having a too generic name here. Part of T72604.
2020-02-10Cleanup: spellingCampbell Barton
2020-02-07Cleanup: Rename `BKE_library_idmap` file to `BKE_main_idmap`Bastien Montagne
Part of T72604: > Proposal: BKE_library and BKE_main API naming: prefixes conventions
2020-02-07Fix crash when linking.Bastien Montagne
Stupid mistake in yesterday's own refactoring of readfile code...
2020-02-06Readfile: refactor/factorize more handling of common ID data.Bastien Montagne
- Move handling of private ID data (nodetree and master_collection) under generic ID code. This shortens code a bit, but mostly avoids having to modify all type-specific callback functions if/when we have to add generic processing to IDs there. - Seriously factorize `expand_xxx` area, in the same way we were already doing in `direct_link_xxx` and `lib_link_xxx` areas. Note that this actually also fixes some bugs (at least, potential ones), like e.g. missing call to expand_id() for our beloved 'private ID' (nodetrees & co), in current master code... Differential Revision: https://developer.blender.org/D6764