Hans Goudey
a224ba806d
Mesh: Rewrite face corner normals calculation
...
This PR intends to replace the current face corner normals calculation.
Compared to the existing code it has a few benefits:
- It's much easier to understand.
- It doesn't require edges, ideally helping to remove them from caches
and eventually to make them optional.
- It is completely multithreaded using the vert to face map, which is
already used for vertex normals and domain interpolation. The previous
code has a significant single threaded portion that scales with the
size of the mesh.
- Lower peak memory usage: It doesn't require a temporary edge to corner
map, the corner to face map, or a corner domain sized bit vector.
- The code sorting corners around a vertex should be easy to reuse.
- It's over twice as fast. On a test file with custom normals I observe
an overall FPS increase of 2.56x, from 37 to 95.
Pull Request: https://projects.blender.org/blender/blender/pulls/138013
2025-05-14 15:35:48 +02:00
..
2025-05-02 15:08:29 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:54:26 +02:00
2025-05-08 20:45:37 +02:00
2024-11-05 16:35:16 +01:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-01-31 17:03:17 +01:00
2024-08-23 13:09:20 +10:00
2025-01-31 17:03:17 +01:00
2025-01-07 12:39:13 +01:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:54:26 +02:00
2025-05-14 15:18:36 +02:00
2025-01-31 17:03:17 +01:00
2025-05-14 15:35:48 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-01-31 17:03:17 +01:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-04-21 17:59:41 +02:00
2025-03-12 15:43:33 +01:00
2025-01-07 12:39:13 +01:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-02-12 23:01:08 +01:00
2023-09-22 03:18:17 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00
2025-05-14 15:35:48 +02:00
2025-05-08 20:45:37 +02:00
2025-01-07 12:39:13 +01:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:54:26 +02:00
2025-05-13 17:27:30 +02:00
2025-05-13 17:27:30 +02:00