Age | Commit message (Collapse) | Author |
|
|
|
The GP_STROKE_RECALC_CACHE identifier was changed to GP_STROKE_RECALC_GEOMETRY because the previous name was confusing and could be confused with the recalculation of the Draw Manager cache.
|
|
The first point index was wrong calculated.
|
|
The mirror was working different to mesh mirror and the result was not the expected.
|
|
There were at least three copies of those:
- OB_RECALC* family of flags, which are rudiment of an old
dependency graph system.
- PSYS_RECALC* which were used by old dependency graph system
as a separate set since the graph itself did not handle
particle systems.
- DEG_TAG_* which was used to tag IDs.
Now there is a single set, which defines what can be tagged
and queried for an update. It also has some aggregate flags
to make queries simpler.
Lets once and for all solve the madness of those flags, stick
to a single set, which will not overlap with anything or require
any extra conversion.
Technically, shouldn't be measurable user difference, but some
of the agregate flags for few dependency graph components did
change.
Fixes T58632: Particle don't update rotation settings
|
|
This is part of T57829.
Reduce the number of batches used to only one by shader type. This reduces GPU overhead and increase a lot the FPS. As the number of batches is small, the time to allocate and free memory was reduced in 90% or more.
Also the code has been simplified and all batch management has been removed because this is not necessary. Now, all shading groups are created after all vertex buffer data for all strokes has been created using DRW_shgroup_call_range_add().
All batch cache data has been moved to the Object runtime struct and not as before where some parts (derived data) were saved inside GPD datablock.
For particles, now the code is faster and cleaner and gets better FPS.
Thanks to Clément Foucault for his help and advices to improve speed.
|
|
New modifiers have thsi default value.
|
|
|
|
|
|
If the offset is greater than frame range, the offset could gets some unlogic values, so now the value is normalized in the range.
|
|
|
|
The frames greater than frame range were wrongly calculated.
|
|
|
|
|
|
These parameters allow to define a frame range for the animation loop and make possible to loop a section while the scene is playing.
|
|
|
|
|
|
The old name Instance was logic when the modifier created new object instances, but now works equal to mesh Array modifier, so the old name was not logic and must be Array.
Also added a Object to use as offset similar to mesh Array modifier.
|
|
|
|
Now the modifier can be filtered using the new layer index.
Also changed panels to put layers and passes filter always at the end of the panel.
|
|
|
|
|
|
This new parameter allows to increase or decrease the animation speed to break animation patterns when reuse data blocks.
|
|
|
|
|
|
|
|
This modifier allows to offset the keyframe animated to get more variations in the animation when reuse the same datablock.
|
|
|
|
Now it's possible to define what material is used in the generated strokes and if the strokes are put in front of the original (default) or keep the original in front.
Before, the generated strokes have been always on top of the original because they were drawn later.
|
|
This is considered a warning which is usually promoted to
error in developers' environment.
Probably worth adding an assert or so, if possible?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This commit adds a new armature modifier for grease pencil. The deformations are done reusing the mesh deform routines.
There is also a new operator in weight paint mode to help the artist to generate weights base on armatures. This operator is required because 2D animation workflow is not equal to meshes when parent an object to armatures.
In the drawing engine has been added the option to handle the Fade object parameter used in armatures to see the strokes while move the bones.
When rename bones, all related data of grease pencil is renamed too. This not only affect new armature code, but also layers parented and hook modifiers.
Thanks @aligorith for his review and help.
|
|
Now the weights are managed in the operators.
The subdivide operator and modifier code have been replaced with a shared function.
Some cleanup also.
|
|
Using custom api breaks material at object level
|
|
|
|
Replace BKE_gpencil_get_material_index by BKE_object_material_slot_find_index
|
|
Name hinted 'vertex index', where it's the index of the vertex group.
|
|
|
|
Before, the weight data array was created always, but now only is added when a weight value is assigned.
This change was suggested by algorithm, and both agreed it was good idea.
|
|
|
|
The initial design assumed that there was only one object for each unique name, but that was not the case when instances were created.
Now, instances are supported and speed has been greatly improved when repetitions are used.
As a result of this change, the option to create objects has been removed in the Instances modifier. This option was strange and was also against Blender's design rules, since a modifier should never create objects. The old functionality of the modifier can be achieved with instances.
Also, several memory leakage problems that were not previously detected have been eliminated, and especially in the grid and in the drawing process
Onion Skin is not supported in multi-user datablocks. Support this, makes incompatible with instances. We need find a solution in the long term, but now it's better keep disabled and make instances work. Anyway, the new instances makes unnecessary to use muli-user datablocks.
|
|
|
|
Now it's possible to define if the Tint, Hue and OPacity modifier affect the stroke color, fill color or both.
|
|
|
|
Thanks to Charlie Jolly (mistajolly@gmail.com) for his patch D3586 that added create materials to opacity modifier.
I had to do some more changes to get all running.
|