This commit makes uses of the new OpenVDB IO in Mantaflow (introduced in 781f783a66ac).
From now on, fluid cache files in OpenVDB format will contain a list of grids per frame (before: one .vdb file per grid per frame). Besides regular grids, particle systems are also stored using OpenVDBs PointGrid data structures.
All older cache formats will remain fully functional:
- Uni caches (.uni) files are still available from the UI and can be used as before
- Raw caches (.raw) are no longer available from the UI, but loading them is still possible
- Old OpenVDB caches (one .vdb per grid) can no longer be baked either, but loading them is still possible.
It is also no longer possible to choose file formats for 'Noise' and 'Particles'. Instead there are now options to set the file format for 'Volumetric' and for 'Mesh' data.
Known issues (planned to be resolved soon):
- OpenVDB files are currently not taking into consideration the clipping value (FluidDomainSettings). Empty cells are therefore being written too. Depending on the scene, this can make file sizes unnecessarily large.
- Domains are not being exported at their world position. Instead they are always clipped to the origin.
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
This patch adds two options:
- Convert a mesh to grease pencil strokes.
- Bake the mesh animation into grease pencil strokes.
Both are related and must be included in the same patch.
Related to tasks: T77629 and T77630
Notice: The conversion is done for mesh edges and it's not considering any visibility clipping. All edges are exported, no matters if it's visible or not.
Example of Convert a Mesh to Grease Pencil strokes:
{F8606028}
This conversion was inspired by the technique used by @luamono in this tweet: https://twitter.com/luamono/status/1239983662176841730
Example of Bake Animation (the video is a little outdate, but the basic functionality is the same, only small changes in UI):
{F8606032}
Reviewed By: mendio, pepeland
Maniphest Tasks: T77629, T77630
Differential Revision: https://developer.blender.org/D7983
A regression caused by c57f65c088 as a fix of another issue.
Added an exception for camera solver as that is always pointing
to camera object.
Since this is a regression which happened in 2.83.0 this change is
a candidate to be ported to the 2.83.1.
The file subversion is no longer used in the Python API or user interface,
and is now internal to Blender.
User interface, Python API and file I/O metadata now use more consistent
formatting for version numbers. Official releases use "2.83.0", "2.83.1",
and releases under development use "2.90.0 Alpha", "2.90.0 Beta".
Some Python add-ons may need to lower the Blender version in bl_info to
(2, 83, 0) or (2, 90, 0) if they used a subversion number higher than 0.
https://wiki.blender.org/wiki/Reference/Release_Notes/2.83/Python_API#Compatibility
This change is in preparation of LTS releases, and also brings us more
in line with semantic versioning.
Fixes T76058.
Differential Revision: https://developer.blender.org/D7748
Adds an 'About Blender' dialog to the 'App' menu to display information like branch and hash.
Differential Revision: https://developer.blender.org/D7146
Reviewed by Campbell Barton
There are cases when a user can accidentally assign an operator to toggle an
invalid property to e.g. left click, which shows Python errors to the users.
Rather than throw an error and e.g. break 3D viewport selection for the user,
just print an error to the console.
The root cause of such bugs should be fixed as well, but a working Blender
is most important here.
This adds an embedded node tree to the simulation data block dna.
The UI in the `Simulation Editor` has been updated to show a list
of simulation data blocks, instead of individual node trees.
The new `SpaceNodeEditor.simulation` property wraps the existing
`SpaceNodeEditor.id` property. It allows scripts to get and set
the simulation data block that is being edited.
Reviewers: brecht, mont29
Differential Revision: https://developer.blender.org/D7301
Basically this new tool constitutes a macro that uses the parameters of
the Extrude and Translate operators that were recently implemented.
Thanks to @CandleComet for initial implementation.
Differential Revision: https://developer.blender.org/D7222
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
This avoids the ambiguity with the Cut operator in the Sequencer, which could be confused with Cut/Copy/Paste.
Use 'Split' for the operator and 'Blade' for the active tool.
Patch by Nathan Lovato, with edits
Differential Revision: https://developer.blender.org/D5542
Preset tracking settings is missing a comma here.
Without a comma this will result in an implicit string concatenation.
This was probably not wanted.
Reviewed By: sergey, Blendify
Differential Revision: https://developer.blender.org/D6717
Fluid domains with (auto-generated) particle systems were set to wireframe drawtype automatically. This was a convenience feature that made particles visible immediately. As the auto switching is sometimes a bit annoying though this has been removed. Instead, the Quick Liquid Operator switches the viewport shading type to wireframe.
Thanks @mano-wii for providing the patch!
The original code assumed that when `animation_player_preset` was not
`CUSTOM`, the `animation_player` path would be empty. This is a bad
assumption, as it can be quite useful to be able to toggle between a custom
and a built-in player. As such, `animation_player` should not be reset to
an empty string when a non-custom player is chosen.