Hans Goudey
44b79af4fc
Cleanup: Sculpt: Simplify face and face set iteration
...
This commit removes knowledge about face sets from the PBVH,
and changes iteration over faces to not depend on the PBVH face
iterator abstraction. Though this adds slightly more boilerplate to
iteration over faces, it makes the whole process more data oriented
and allows use of index-based utilities like `gather` and `scatter`
in the mesh case, and simpler iteration over BMesh faces for
dynamic topology.
Setting face sets is now specialized per PBVH type in a few places
in a similar way. The general goal is to reduce branching and function
calls at the lowest level of hot loops, and to make code more aware
of the data structures it uses, both for performance and clarity.
Since the remaining uses of the face iterator are removed,
the iterator itself is removed too.
Related commits:
- 97f2b01ea9
- 756dea7ca1
- a6a2af5fdd
Pull Request: https://projects.blender.org/blender/blender/pulls/114417
2023-11-03 10:27:38 +01:00
..
2023-05-31 16:19:06 +02:00
2023-10-30 21:40:35 +01:00
2023-09-26 18:18:56 +02:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-09-22 03:18:17 +02:00
2023-09-22 12:21:18 +10:00
2023-10-30 21:40:35 +01:00
2023-08-28 15:01:05 +02:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-09-22 03:18:17 +02:00
2023-09-06 00:48:50 +02:00
2023-08-29 14:31:18 +02:00
2023-09-01 21:37:11 +02:00
2023-10-09 23:41:53 +02:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-09-01 21:37:11 +02:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-09-03 13:37:50 +02:00
2023-09-03 13:37:50 +02:00
2023-09-03 13:37:50 +02:00
2023-09-22 03:18:17 +02:00
2023-09-22 03:18:17 +02:00
2023-08-16 00:20:26 +10:00
2023-11-03 01:33:54 +01:00
2023-10-09 23:41:53 +02:00
2023-10-26 22:26:13 +11:00
2023-09-08 13:57:53 +10:00
2023-08-16 00:20:26 +10:00
2023-11-03 01:33:54 +01:00
2023-10-19 21:39:58 +02:00
2023-09-07 08:36:43 -04:00
2023-10-23 12:05:28 +02:00
2023-09-06 00:48:50 +02:00
2023-10-19 21:39:58 +02:00
2023-08-16 00:20:26 +10:00
2023-09-25 17:06:04 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-10-09 23:41:53 +02:00
2023-09-22 03:18:17 +02:00
2023-10-19 21:39:58 +02:00
2023-09-22 03:18:17 +02:00
2023-08-10 14:51:40 +03:00
2023-09-25 17:06:04 +10:00
2023-08-16 14:48:53 +03:00
2023-10-30 21:40:35 +01:00
2023-09-25 17:53:11 -04:00
2023-08-16 00:20:26 +10:00
2023-11-02 17:10:59 +01:00
2023-09-01 21:37:11 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-09-22 03:18:17 +02:00
2023-08-19 23:52:47 +10:00
2023-08-10 14:51:40 +03:00
2023-09-01 21:37:11 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-19 21:39:58 +02:00
2023-08-28 15:01:05 +02:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-09 23:41:53 +02:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-09 23:41:53 +02:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-09-27 10:26:06 +02:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-07 23:14:04 +02:00
2023-10-30 21:40:35 +01:00
2023-10-09 23:41:53 +02:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-11-02 17:10:59 +01:00
2023-08-16 00:20:26 +10:00
2023-09-05 16:05:12 +02:00
2023-08-16 00:20:26 +10:00
2023-09-01 21:37:11 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-11-02 14:33:04 +01:00
2023-08-16 00:20:26 +10:00
2023-07-04 17:03:02 +02:00
2023-09-14 13:25:24 +10:00
2023-09-25 12:46:17 +02:00
2023-08-16 00:20:26 +10:00
2023-09-01 21:37:11 +02:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-11-03 01:33:54 +01:00
2023-10-30 21:40:35 +01:00
2023-11-03 01:33:54 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-10-09 23:41:53 +02:00
2023-10-19 21:39:58 +02:00
2023-09-06 00:48:50 +02:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-09-22 03:18:17 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-09-22 03:18:17 +02:00
2023-10-31 11:56:18 +01:00
2023-09-14 13:25:24 +10:00
2023-10-09 23:41:53 +02:00
2023-10-09 23:41:53 +02:00
2023-10-19 21:39:58 +02:00
2023-09-25 18:00:28 +02:00
2023-10-19 21:39:58 +02:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-09-14 11:46:32 +10:00
2023-09-25 17:06:04 +10:00
2023-09-25 17:06:04 +10:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-11-03 09:27:59 +01:00
2023-08-16 00:20:26 +10:00
2023-10-09 23:41:53 +02:00
2023-08-16 00:20:26 +10:00
2023-10-17 09:56:24 +02:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-09-08 16:18:38 +02:00
2023-08-30 23:41:59 +02:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-09-01 21:37:11 +02:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-09-07 08:36:43 -04:00
2023-09-22 03:18:17 +02:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-09-22 03:18:17 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-09-22 03:18:17 +02:00
2023-09-22 03:18:17 +02:00
2023-08-16 00:20:26 +10:00
2023-10-09 23:41:53 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-09-22 03:18:17 +02:00
2023-08-30 23:41:59 +02:00
2023-08-16 00:20:26 +10:00
2023-10-09 23:41:53 +02:00
2023-09-26 18:18:56 +02:00
2023-10-30 21:40:35 +01:00
2023-09-26 20:30:46 +02:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-31 13:46:31 +01:00
2023-10-30 21:40:35 +01:00
2023-09-20 14:40:56 +02:00
2023-11-02 12:56:33 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-11-03 01:33:54 +01:00
2023-08-16 00:20:26 +10:00
2023-08-19 23:52:47 +10:00
2023-08-10 14:51:40 +03:00
2023-08-16 00:20:26 +10:00
2023-10-10 22:47:35 +11:00
2023-09-01 21:37:11 +02:00
2023-08-16 00:20:26 +10:00
2023-11-03 10:27:38 +01:00
2023-08-16 00:20:26 +10:00
2023-10-09 23:41:53 +02:00
2023-10-30 21:40:35 +01:00
2023-10-19 21:39:58 +02:00
2023-11-02 16:43:04 +11:00
2023-10-30 21:40:35 +01:00
2023-11-03 10:27:38 +01:00
2023-09-01 21:37:11 +02:00
2023-08-16 00:20:26 +10:00
2023-09-01 21:37:11 +02:00
2023-08-29 11:47:29 -04:00
2023-08-29 17:00:33 +02:00
2023-11-03 10:27:38 +01:00
2023-10-09 23:41:53 +02:00
2023-10-30 21:40:35 +01:00
2023-09-22 12:21:18 +10:00
2023-10-30 21:40:35 +01:00
2023-09-06 18:00:20 +02:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-11-03 01:33:54 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-09-25 15:25:43 +10:00
2023-11-03 01:33:54 +01:00
2023-10-19 21:39:58 +02:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-31 19:40:39 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-31 14:22:22 -04:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-10-09 23:41:53 +02:00
2023-08-16 00:20:26 +10:00
2023-10-19 21:39:58 +02:00
2023-10-19 21:39:58 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-19 21:39:58 +02:00
2023-09-25 17:06:04 +10:00
2023-09-27 11:09:39 +02:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-10-19 21:39:58 +02:00
2023-10-30 21:40:35 +01:00
2023-10-19 21:39:58 +02:00
2023-07-22 11:46:41 +10:00
2023-08-16 00:20:26 +10:00