Age | Commit message (Collapse) | Author |
|
|
|
|
|
The BKE_gpencil_stroke_add_points API function worked well for
creating the primitives in the add object menu, but it expected a
specific data format that doesn't make sense in a dynamic context.
As evidence of that we can see the way source data was duplicated
in the line art file just to use this API function.
This commit solves that problem in two ways:
- Clean up the line art function (this should make it faster too).
- Move/rename the function so its intended use is more clear.
Differential Revision: https://developer.blender.org/D11909
|
|
This commit moves the storage of `bDeformGroup` and the active index
to `Mesh`, `Lattice`, and `bGPdata` instead of `Object`. Utility
functions are added to allow easy access to the vertex groups given
an object or an ID.
As explained in T88951, the list of vertex group names is currently
stored separately per object, even though vertex group data is stored
on the geometry. This tends to complicate code and cause bugs,
especially as geometry is created procedurally and tied less closely
to an object.
The "Copy Vertex Groups to Linked" operator is removed, since they
are stored on the geometry anyway.
This patch leaves the object-level python API for vertex groups in
place. Creating a geometry-level RNA API can be a separate step;
the changes in this commit are invasive enough as it is.
Note that opening a file saved in 3.0 in an earlier version means
the vertex groups will not be available.
Differential Revision: https://developer.blender.org/D11689
|
|
Rename:
- EDBM_mesh_free -> EDBM_mesh_free_data
BKE_editmesh_free -> BKE_editmesh_free_data
Since this doesn't free the edit-mesh pointer.
- BKE_editmesh_free_derivedmesh -> BKE_editmesh_free_derived_caches
Since this no longer uses derived-mesh, match naming for the related
object function BKE_object_free_derived_caches.
Also remove `do_tessellate` argument from BKE_editmesh_create,
since the caller can explicitly do this if it's needed,
with the advantage that it can be combined with normal calculation
which is faster on high-poly meshes.
|
|
|
|
The name was mistakenly written as `use_cached_result`. Fixed.
|
|
After cache implementation line art apply will not show strokes properly, now fixed.
# Conflicts:
# source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
|
|
|
|
|
|
Now, The weight is used in the randomize parameters of the offset modifier.
This is useful to generate effects like explosions.
Related to the new Vertex Weight modifiers.
|
|
Also use doxy style function reference `#` prefix chars when
referencing identifiers.
|
|
|
|
his new modifier allows to generate weights base on:
* Angle of the stroke relative to object or world orientation. For example, if the value is 90, the maximum weights will be for vertical lines and minimum for horizontal lines.
* Distance to Target object. The distance calculated is normalized to get valid weights between 0 and 1.0.
The weights are created in an existing vertex group and the data can be replaced or mixed with the existing value to combine different weight effects. The minimum parameter, allows to define the minimum weight generated. This is useful to avoid very low weights.
The generated weights can be used in any modifier. For example, the angle weight value can be used to mimic FreeStyle Caligraphy modifier using the weight with the thickness modifier.
Also some modifier has been changed to inlude a new option to use the weights as factor of the effect.
As result of this change, the fading option has been removed from Thickness and Opacity modifiers because this can be done using the new modifier, it's not logic to repeat the same.
Reviewed By: mendio, filedescriptor
Differential Revision: https://developer.blender.org/D11604
|
|
|
|
Mask value works just like transparency mask.
You are able to select intersection lines inside a
collection or, between collections.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11309
|
|
|
|
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11735
|
|
see comment in https://developer.blender.org/rB841df831e89dfc4011c323203c2efb8265dc1878
|
|
|
|
This patch adds a function where you can specify occlusion effectiveness from 0 to 255 layers per face for a given mesh material.
Reviewed By: Sebastian Parborg (zeddb)
Ref D11308
|
|
|
|
|
|
User can specify filtering options inside line art modifier,
like inverting selection and including face mark region border.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11307
|
|
This patch includes: Floating edge type support,
Special chaining option for floating edge,
Chaining option for reducing jagged edges when floating
edges are involved.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11306
|
|
|
|
|
|
This patch enables bound box check when loading geometry
into line art. Works with overscan as well. Will discard
object if its bbox completely lies in one side of the
clipping space frustum.
Reviewed by: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11545
|
|
For scenes that have a lot of edges, this could potentially
save some time generating individual strokes that are outside
camera frustum.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11525
|
|
|
|
This allows line art to run only once for each modifier stacks,
with an option to toggle a specific line art modifier should
use cache or re-do their own calculations.
Reviewed By: Sebastian Parborg (zeddb), Hans Goudey (HooglyBoogly)
Differential Revision: https://developer.blender.org/D11291
|
|
After looking into task isolation issues with Sergey, we couldn't find the
reason behind the deadlocks that we are getting in T87938 and a Sprite Fright
file involving motion blur renders.
There is no apparent place where we adding or waiting on tasks in a task group
from different isolation regions, which is what is known to cause problems. Yet
it still hangs. Either we do not understand some limitation of TBB isolation,
or there is a bug in TBB, but we could not figure it out.
Instead the idea is to use isolation only where we know we need it: when
holding a mutex lock and then doing some multithreaded operation within that
locked region. Three places where we do this now:
* Generated images
* Cached BVH tree building
* OpenVDB lazy grid loading
Compared to the more automatic approach previously used, there is the downside
that it is easy to miss places where we need isolation. Yet doing it more
automatically is also causing unexpected issue and bugs that we found no
solution for, so this seems better.
Patch implemented by Sergey and me.
Differential Revision: https://developer.blender.org/D11603
|
|
These were limited to obvious cases. Some less obvious cases
were kept as refactoring might make them necessary in future.
|
|
|
|
The original fix was probably flushed by some newer
line art commits. Fixed.
See https://developer.blender.org/T88464
|
|
Under some circumstances using task isolation can cause deadlocks.
Previously, our task pool implementation would run all tasks in an
isolated region. Now using task isolation is optional and can be
turned on/off for individual task pools.
Task pools that spawn new tasks recursively should never enable
task isolation. There is a new check that finds these cases at runtime.
Right now this check is disabled, so that this commit is a pure refactor.
It will be enabled in an upcoming commit.
This fixes T88598.
Differential Revision: https://developer.blender.org/D11415
|
|
Move BMesh conversion and all loading code into worker.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11288
|
|
|
|
|
|
FOV was expanded to cover the shifting range,
rather than to precisely cut at the image border. Now fixed.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11523
|
|
Small bug that's causing edge count to be incorrect in
final culled list, just being offset exactly 1 entry.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11513
|
|
The variable is assigned below again and the initial value is not used.
|
|
There was a double apply of the thickness due a bug in the fading new parameter.
Differential Revision: https://developer.blender.org/D11483
|
|
|
|
This is due to cam->obmat precision issue,
where it affects view vector precision.
Reviewed by Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11461
|
|
Use array instead of ListBase for line art
bounding area linked triangles and edges.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11302
|
|
Change `reln` to `eln`.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11411
|
|
This clarifies the data structures for storing edges
for different calculation stages.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11386
|
|
Make variable naming consistent with struct names.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: https://developer.blender.org/D11382
|
|
This will update active camera based on the maker for each frame.
Reviewed By: Sebastian Parborg (zeddb), Antonio Vazquez (antoniov)
Differential Revision: https://developer.blender.org/D11358
|