Lukas Tönne LukasTonne
Lukas Tönne pushed to gpv3-fix-disappearing-frames at LukasTonne/blender 2024-04-09 11:38:51 +02:00
1665d6e569 Use the operator flag for duplicate in the init function instead of the update function
02375a513d Minor change: Vector to Span in function call
6d06713129 Fix disappearing frames when moving multiple frames
Compare 3 commits »
Lukas Tönne commented on pull request blender/blender#119337 2024-04-09 11:37:49 +02:00
Fix #118509: Grease Pencil frames no longer disappearing while being transformed in the timeline

@amelief I'll continue working on this, hope you don't mind!

Lukas Tönne created pull request blender/blender#120420 2024-04-09 11:29:43 +02:00
WIP: Field type inferencing using a constraint solver method
Lukas Tönne pushed to socket-type-inference at LukasTonne/blender 2024-04-09 10:57:52 +02:00
daf213706d Moved legacy propagation code into its own file for easy comparison.
Lukas Tönne commented on pull request blender/blender#118273 2024-04-09 10:55:25 +02:00
GPv3: Overlay for Weight Paint mode
Lukas Tönne pushed to socket-type-inference at LukasTonne/blender 2024-04-09 09:37:26 +02:00
a09bce3251 Merge branch 'main' into socket-type-inference
38e4e9c68b Fix potential null pointer dereference from the RenderView::imbuf
6776d68f5e Cleanup: avoid shadowing variables
ea7657511c Cleanup: promote to size_t before calculating sizes
e01525cf2c Cleanup: remove redundant variables & assignments
Compare 201 commits »
Lukas Tönne commented on pull request blender/blender#113953 2024-04-09 09:29:06 +02:00
GPv3: Cutter tool

I think this can be made more parallelizable by doing the intersection tests up-front: There is essentially one intersection test per point. The expand_cutter_segment loop may get started…

Lukas Tönne pushed to gp3-sculpt-tools at LukasTonne/blender 2024-04-08 18:02:55 +02:00
7d3773a65d Include the multi_frame_falloff in common parameters.
Lukas Tönne commented on pull request blender/blender#113953 2024-04-08 17:46:01 +02:00
GPv3: Cutter tool

Profiler indicates a lot of time spent in receive_or_steal_task (65%). I guess doing threading in the outer loop is a more difficult because of how CutterSegments gets extended and needs to be…

Lukas Tönne suggested changes for blender/blender#113953 2024-04-08 17:34:23 +02:00
GPv3: Cutter tool

Quite a complex feature, and it works better than the GPv2 version! Just some minor nitpicks and some possible performance improvements. Not critical, but I'd like to confirm with someone who understands thread behavior better than me.

Lukas Tönne commented on pull request blender/blender#113953 2024-04-08 17:34:22 +02:00
GPv3: Cutter tool

It would be easier to understand if this last part for cyclic curves is moved out of the expand_cutter_segment function. Currently it looks at first glance like the function is recursive. Doing both calls for the non-cyclic and the cyclic part outside of the function is easier to understand i think.

Lukas Tönne commented on pull request blender/blender#113953 2024-04-08 17:34:21 +02:00
GPv3: Cutter tool

IndexRange can be used instead of a custom range class. That also comes with a bunch of useful functions, e.g. contains to check the range in point_is_in_segment.

Lukas Tönne commented on pull request blender/blender#113953 2024-04-08 17:34:20 +02:00
GPv3: Cutter tool

nit picking: past tense of "cut" is "cut", so cut_strokes

Lukas Tönne commented on pull request blender/blender#113953 2024-04-08 17:34:19 +02:00
GPv3: Cutter tool

Second opinion would be welcome, but i think calling parallel_for here could have significant overhead. This function is called for every point, and then starts a threaded loop over all the points, and waits before moving to the next point. If my intuition is correct it would be faster to do the threading in the outer loop (stroke_cutter_find_and_remove_segments) and use a simple for loop here.

Lukas Tönne commented on pull request blender/blender#113953 2024-04-08 17:34:18 +02:00
GPv3: Cutter tool

Can avoid this check inside the loop by modifying the range

Lukas Tönne commented on pull request blender/blender#113953 2024-04-08 17:34:17 +02:00
GPv3: Cutter tool

I think it would be easier and more efficient to just have a per-point bool array to mark points in segments. We're not interested in which segment a point is part of, so just setting the flag when a point gets added to any segment should be sufficient.

Lukas Tönne commented on pull request blender/blender#113953 2024-04-08 17:34:16 +02:00
GPv3: Cutter tool

orphaned

Lukas Tönne commented on pull request blender/blender#113953 2024-04-08 12:09:18 +02:00
GPv3: Cutter tool

Tested it and it feels quite nice.

I noticed that GPv2 cutter only deletes one segment per stroke, while this implementation removes anything within the lasso (generally, some corner cases…