Mattias Fredriksson
ccd8926717
Curves: Simplify calculation of NURBS basis functions
...
Replaces current basis function calculation which seems to be a direct
implementation of the recursive NURBS formulation. New implementation
avoids the need to check for zero divisions during iteration. Out of
bounds checks are also converted to asserts, assuming input provides
valid span index.
Performance wise this nets a 7+% performance improvement with the
average result being as fast or faster then the fastest execution
from previous implementation!
Pull Request: https://projects.blender.org/blender/blender/pulls/144457
2025-09-04 21:49:58 +02:00
..
2025-01-28 15:27:34 +01:00
2025-07-26 12:33:15 +00:00
2025-07-24 22:18:15 +10:00
2025-07-29 14:37:35 +02:00
2025-07-09 20:59:26 +02:00
2025-06-10 17:46:55 +02:00
2025-05-09 16:13:25 +02:00
2025-07-26 12:33:15 +00:00
2025-07-09 20:59:26 +02:00
2025-07-09 20:59:26 +02:00
2025-04-21 17:59:41 +02:00
2025-01-28 15:27:34 +01:00
2025-08-07 01:06:42 +00:00
2025-07-07 15:50:38 +02:00
2025-07-17 09:42:39 +02:00
2025-07-29 14:37:35 +02:00
2025-04-21 17:59:41 +02:00
2025-06-23 18:11:33 +02:00
2025-08-14 14:50:28 +02:00
2025-06-19 16:39:20 +02:00
2025-05-17 10:17:37 +10:00
2025-03-05 16:35:09 +01:00
2025-03-20 11:25:19 +01:00
2025-07-01 22:14:26 +02:00
2025-09-04 02:41:55 +02:00
2025-07-18 17:55:36 +02:00
2025-01-30 17:19:16 +01:00
2025-08-17 18:08:18 +02:00
2025-08-17 18:08:18 +02:00
2025-05-09 17:27:07 +02:00
2025-08-19 10:23:13 -04:00
2025-08-07 12:38:27 -04:00
2025-01-31 17:03:17 +01:00
2025-01-28 15:27:34 +01:00
2025-07-24 15:59:52 +02:00
2025-02-12 23:01:08 +01:00
2025-01-29 12:12:27 +01:00
2025-07-28 19:05:18 +02:00
2025-08-12 16:03:09 +02:00
2025-08-05 06:25:20 +02:00
2025-05-29 21:21:18 +02:00
2025-01-28 15:27:34 +01:00
2025-03-05 16:35:09 +01:00
2025-03-20 11:25:19 +01:00
2025-07-26 12:33:15 +00:00
2025-09-01 15:41:20 +02:00
2025-07-28 13:36:13 +02:00
2025-07-26 12:33:15 +00:00
2025-05-20 04:33:43 +00:00
2025-07-09 20:59:26 +02:00
2025-07-13 21:58:53 +10:00
2025-09-03 05:34:38 +02:00
2025-02-19 17:11:08 +01:00
2025-06-04 11:04:37 +02:00
2025-01-28 15:27:34 +01:00
2025-06-28 15:54:00 +02:00
2025-08-05 11:16:22 +02:00
2025-08-08 12:30:04 +02:00
2025-06-02 17:13:56 -04:00
2025-03-20 11:25:19 +01:00
2025-09-01 16:28:07 +02:00
2025-08-07 12:18:06 +02:00
2025-08-11 10:03:21 +02:00
2025-08-08 07:37:33 +10:00
2025-09-04 23:05:17 +10:00
2025-08-13 15:43:37 +02:00
2025-07-08 12:11:42 +02:00
2025-03-20 11:25:19 +01:00
2025-09-03 10:48:00 +02:00
2025-03-20 11:25:19 +01:00
2024-10-31 11:25:41 +01:00
2025-05-20 10:11:56 +00:00
2025-03-20 11:25:19 +01:00
2025-01-31 17:03:17 +01:00
2025-05-12 16:51:21 +02:00
2025-09-04 21:49:58 +02:00
2025-07-13 21:58:53 +10:00
2025-07-01 22:14:26 +02:00
2025-08-28 18:20:09 +10:00
2025-08-08 07:37:33 +10:00
2025-07-28 17:59:01 -04:00
2025-08-25 18:22:36 +02:00
2025-09-03 04:29:08 +02:00
2025-08-25 23:37:12 +02:00
2025-05-20 17:32:49 +02:00
2025-06-12 10:37:47 +02:00
2025-08-27 00:02:20 +02:00
2025-07-16 22:53:21 +02:00
2025-07-16 22:53:21 +02:00
2025-07-10 14:51:50 +02:00
2025-08-28 14:24:25 +02:00
2025-07-09 15:44:22 +10:00
2025-08-27 17:44:08 +02:00
2025-04-21 17:59:41 +02:00
2025-04-21 17:59:41 +02:00
2025-01-28 15:27:34 +01:00
2025-07-17 02:24:09 +02:00
2025-05-02 15:08:29 +02:00
2025-06-09 11:35:19 +02:00
2025-05-29 21:21:18 +02:00
2025-09-03 17:40:29 +10:00
2025-01-31 17:03:17 +01:00
2025-09-02 16:08:38 +02:00
2025-08-08 07:37:33 +10:00
2025-01-31 17:03:17 +01:00
2025-08-27 17:44:08 +02:00
2025-07-09 20:59:26 +02:00
2025-07-26 12:33:15 +00:00
2025-07-17 16:59:56 +02:00
2025-07-17 09:09:16 +02:00
2025-07-08 12:11:42 +02:00
2024-11-19 14:28:01 +01:00
2025-01-14 19:55:11 +01:00
2025-07-17 09:09:16 +02:00
2024-11-19 14:28:01 +01:00
2025-07-17 09:09:16 +02:00
2025-08-04 16:04:04 +02:00
2025-09-04 13:59:44 +02:00
2025-04-21 17:59:41 +02:00
2025-08-26 17:10:16 +02:00
2025-07-30 14:22:06 +10:00
2025-07-10 22:18:06 +02:00
2025-08-08 07:37:33 +10:00
2025-07-01 16:30:00 +02:00
2025-03-05 16:35:09 +01:00
2025-08-28 19:27:17 +02:00
2025-03-03 17:11:45 +01:00
2025-07-09 20:59:26 +02:00
2025-01-03 19:15:01 +01:00
2025-08-08 07:37:33 +10:00
2025-01-31 17:03:17 +01:00
2025-08-07 16:38:04 +02:00
2025-07-09 20:59:26 +02:00
2025-09-03 16:32:01 +02:00
2025-08-21 15:24:40 +02:00
2025-08-11 21:18:38 +02:00
2025-01-31 17:03:17 +01:00
2025-08-01 21:41:24 +10:00
2025-08-21 15:25:21 +02:00
2025-03-27 22:07:50 +01:00
2025-08-25 16:30:40 +02:00
2025-07-10 22:18:06 +02:00
2025-08-18 13:16:58 +02:00
2025-08-18 15:39:58 +02:00
2025-01-31 17:03:17 +01:00
2025-07-26 12:33:15 +00:00
2025-03-20 11:25:19 +01:00
2025-03-20 11:25:19 +01:00
2025-07-10 16:17:05 +02:00
2025-05-20 17:32:49 +02:00
2025-04-21 17:59:41 +02:00
2025-01-28 15:27:34 +01:00
2025-07-26 12:33:15 +00:00
2025-06-06 11:49:54 +02:00
2025-01-31 17:03:17 +01:00
2025-01-31 17:03:17 +01:00
2025-06-19 16:39:20 +02:00
2025-08-13 19:05:59 +02:00
2024-11-02 17:27:09 +11:00
2025-07-09 20:59:26 +02:00
2025-08-13 10:05:36 +02:00
2025-07-24 10:48:04 +10:00
2025-07-09 20:59:26 +02:00
2025-05-05 18:41:03 +02:00
2025-07-09 20:59:26 +02:00
2025-07-21 17:59:17 +02:00
2025-08-01 15:43:00 +02:00
2025-05-22 16:32:44 +02:00
2025-05-20 17:32:49 +02:00
2025-07-26 12:33:15 +00:00
2025-03-20 11:25:19 +01:00
2025-01-14 16:26:54 +01:00
2025-07-09 20:59:26 +02:00
2025-05-09 16:13:25 +02:00
2025-07-09 20:59:26 +02:00
2025-04-17 13:09:20 +02:00
2025-07-09 20:59:26 +02:00
2025-07-26 12:33:15 +00:00
2025-08-12 09:48:49 +10:00
2025-07-09 15:23:42 +10:00
2025-06-24 07:56:50 +00:00
2025-07-28 17:59:01 -04:00
2025-04-29 18:52:30 +02:00
2025-09-03 16:17:49 +02:00
2025-08-04 15:34:18 -04:00
2025-01-31 17:03:17 +01:00
2025-05-14 17:56:07 +02:00
2025-01-28 15:27:34 +01:00
2025-07-17 02:24:09 +02:00
2025-08-22 17:59:27 +02:00
2025-07-21 16:11:37 +02:00
2025-08-27 17:44:08 +02:00
2025-08-27 17:44:08 +02:00
2025-08-27 17:47:08 +02:00
2025-07-16 21:59:25 +02:00
2025-07-01 22:14:26 +02:00
2025-07-04 20:02:37 +02:00
2025-01-28 15:27:34 +01:00
2025-07-25 18:12:08 -04:00
2025-01-31 17:03:17 +01:00
2025-07-17 09:09:16 +02:00
2025-09-04 19:00:30 +10:00
2025-08-06 15:52:47 +02:00
2025-08-28 19:27:17 +02:00
2025-08-22 17:59:27 +02:00
2025-08-11 21:18:38 +02:00
2025-06-16 23:42:05 +02:00
2025-07-15 00:01:12 +02:00
2025-07-15 00:01:12 +02:00
2025-08-22 17:15:06 +02:00
2025-01-29 17:22:51 +11:00
2025-08-22 17:15:06 +02:00
2025-07-15 00:01:12 +02:00
2025-08-27 01:39:23 +02:00
2025-08-29 21:52:19 +02:00
2025-01-28 15:27:34 +01:00
2025-08-22 17:59:27 +02:00
2025-07-10 16:17:05 +02:00
2025-08-22 17:15:06 +02:00
2025-08-28 22:47:06 +02:00
2025-01-31 17:03:17 +01:00
2025-08-07 11:30:25 +02:00
2025-01-28 15:27:34 +01:00
2025-09-02 16:24:26 +02:00
2025-08-13 15:43:37 +02:00
2025-03-23 13:34:07 +01:00
2025-06-02 13:50:07 +02:00
2025-08-12 11:00:10 +02:00
2025-08-02 10:17:39 +02:00
2025-08-08 09:07:20 +02:00
2025-08-25 16:06:46 +02:00
2025-05-19 17:25:36 +02:00
2025-09-04 06:45:32 +02:00
2025-07-11 05:01:57 +02:00
2025-08-29 03:40:33 +00:00
2025-07-16 18:26:26 +02:00
2025-08-28 18:05:54 +02:00
2025-02-13 18:58:08 +01:00
2025-08-12 21:26:38 +02:00
2025-05-08 15:37:28 +02:00
2025-01-28 15:27:34 +01:00
2025-07-09 20:59:26 +02:00
2025-02-12 23:01:08 +01:00
2025-07-07 16:53:12 +02:00
2025-09-03 07:13:11 +02:00
2025-01-31 17:03:17 +01:00
2025-04-21 17:59:41 +02:00
2025-08-08 07:37:33 +10:00
2025-07-26 12:33:15 +00:00
2025-07-22 14:47:56 +02:00
2025-08-07 06:26:50 +10:00
2025-07-09 20:59:26 +02:00
2024-11-01 17:27:07 +01:00
2025-01-31 17:03:17 +01:00
2025-01-07 12:39:13 +01:00
2025-05-23 15:34:26 +02:00
2025-05-23 15:34:26 +02:00
2025-04-25 21:47:08 +02:00
2025-08-29 00:22:36 +02:00
2025-08-13 16:38:46 +02:00
2025-07-10 22:18:06 +02:00
2025-08-17 18:08:18 +02:00
2025-06-06 11:49:54 +02:00
2025-07-03 18:21:16 +10:00
2025-06-27 16:44:33 +02:00
2025-07-09 20:59:26 +02:00
2025-08-07 11:30:25 +02:00
2025-09-03 16:32:01 +02:00
2025-08-18 20:56:40 +02:00
2025-02-12 23:01:08 +01:00
2025-09-03 10:40:06 +10:00
2025-08-20 11:01:13 +10:00
2025-08-12 13:32:01 +10:00
2025-05-20 17:32:49 +02:00
2025-07-22 14:58:54 +02:00
2025-03-20 11:25:19 +01:00
2025-08-22 17:59:27 +02:00
2025-08-29 21:52:19 +02:00
2025-07-21 16:11:37 +02:00
2025-08-24 19:50:40 +10:00
2025-08-29 21:52:19 +02:00
2025-08-27 17:44:08 +02:00
2025-08-29 21:52:19 +02:00
2025-08-22 17:59:27 +02:00
2025-08-27 00:02:20 +02:00
2025-07-01 22:14:26 +02:00
2024-11-07 10:36:53 +01:00
2025-08-29 21:52:19 +02:00
2025-05-29 21:21:18 +02:00
2025-06-16 12:06:02 +02:00
2025-03-05 16:35:09 +01:00
2025-01-28 15:27:34 +01:00
2025-03-05 16:35:09 +01:00
2025-03-05 16:35:09 +01:00
2025-07-27 16:39:57 +10:00
2025-06-02 17:13:56 -04:00
2025-06-02 17:13:56 -04:00
2025-08-06 00:20:39 +00:00
2025-08-28 14:24:25 +02:00
2025-07-09 20:59:26 +02:00
2025-08-19 09:37:38 +00:00
2025-08-08 07:37:33 +10:00
2025-08-29 13:45:59 +10:00
2025-08-25 06:20:08 +00:00
2025-07-30 21:25:18 +02:00
2025-05-23 06:07:04 +02:00
2025-07-17 09:09:16 +02:00
2025-08-06 00:20:39 +00:00
2025-05-12 13:46:40 +02:00
2025-08-26 12:27:20 +02:00
2025-05-09 16:13:25 +02:00
2025-08-26 12:27:20 +02:00
2025-08-26 12:27:20 +02:00
2025-08-18 20:44:44 +02:00
2025-08-25 11:58:17 +02:00
2025-05-20 17:32:49 +02:00