Simulation Nodes: bake simulation states to disk #106937

Merged
Jacques Lucke merged 116 commits from JacquesLucke/blender:sim-bake into geometry-nodes-simulation 2023-04-22 14:48:56 +02:00

116 Commits

Author SHA1 Message Date
Jacques Lucke 3ddb67332e fix implicit sharing comment 2023-04-22 13:42:52 +02:00
Jacques Lucke ddda05b963 use references instead of pointers 2023-04-22 13:42:38 +02:00
Jacques Lucke e0dded2565 Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-22 13:15:49 +02:00
Jacques Lucke 06a783c75f cleanup 2023-04-21 09:28:23 +02:00
Jacques Lucke d1bb94c7b0 Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-21 09:27:21 +02:00
Jacques Lucke d60f82e0a1 extract function to prepare simulation states 2023-04-20 12:16:06 +02:00
Jacques Lucke 749b164115 avoid using void** 2023-04-20 12:11:30 +02:00
Jacques Lucke f1c1734f9b show error when deleting directory failed 2023-04-20 12:06:48 +02:00
Jacques Lucke c3b81344e8 add comments 2023-04-20 12:03:02 +02:00
Jacques Lucke de0d91030d skip drawing node editor while baking/rendering
This lead to a use-after-free bug when baking happens on
another thread at the same time.
2023-04-20 11:53:04 +02:00
Jacques Lucke 9f3dfe3de8 use sizeof int32_t instead of float 2023-04-20 10:25:13 +02:00
Jacques Lucke 5c61f0dd3a improve handling of missing files 2023-04-20 10:16:56 +02:00
Hans Goudey b7f35d475e Cleanup: Comment style 2023-04-20 00:01:05 -04:00
Hans Goudey 22846f7200 Cleanup: Use unique_ptr for Instances loading 2023-04-19 23:59:45 -04:00
Hans Goudey 77b768654e Cleanup: Implement subframe mixing 2023-04-19 23:48:19 -04:00
Hans Goudey 4f337cb6a2 Cleanup: Fix typo 2023-04-19 23:47:27 -04:00
Hans Goudey 417395e878 Cancel baking operator when there are no objects 2023-04-19 23:45:57 -04:00
Hans Goudey b135860f4a Cleanup: Avoid redundant if statements 2023-04-19 23:44:57 -04:00
Hans Goudey ae228b5de7 Share builtin required attributes when loading geometry 2023-04-19 23:44:24 -04:00
Hans Goudey aa84c79d31 Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-19 23:26:06 -04:00
Hans Goudey 57dc52bd42 Fix order of BKE_mesh_new_nomain arguments after main merge 2023-04-19 22:54:44 -04:00
Hans Goudey dae92f98d4 Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-19 22:53:30 -04:00
Jacques Lucke 3a7ad71129 cleanup 2023-04-19 15:58:50 +02:00
Jacques Lucke 7d9faedb6a add comments 2023-04-19 15:49:46 +02:00
Jacques Lucke b67c4e9d5a add mutex 2023-04-19 14:55:07 +02:00
Jacques Lucke bef1c6c08e comments 2023-04-19 14:49:43 +02:00
Jacques Lucke 0a0c427526 support progress reporting 2023-04-19 14:40:41 +02:00
Jacques Lucke 9ecb578fb5 support baking active or selected 2023-04-19 13:40:12 +02:00
Jacques Lucke e1b2d7a9db improve bake panel 2023-04-19 13:28:32 +02:00
Jacques Lucke 7651155db1 extract SubFrame to separate header 2023-04-19 13:16:38 +02:00
Jacques Lucke 40e3b85f29 improve error handling 2023-04-19 13:11:10 +02:00
Jacques Lucke bc776c688c clear bdata sharing on reset 2023-04-19 13:03:11 +02:00
Jacques Lucke 27a38a7dbc read shared curve offsets 2023-04-19 12:59:06 +02:00
Jacques Lucke cbfcdfb21c read shared poly offsets 2023-04-19 12:54:10 +02:00
Jacques Lucke 01668d167e cleanup 2023-04-19 12:43:12 +02:00
Jacques Lucke df4fb52e59 cleanup 2023-04-19 12:32:02 +02:00
Jacques Lucke ad7fdf13d0 cleanup 2023-04-19 12:31:35 +02:00
Jacques Lucke 482638731b cleanup 2023-04-19 12:23:54 +02:00
Jacques Lucke 7a3a0e88da cleanup 2023-04-19 12:18:27 +02:00
Jacques Lucke fd5614a236 improve sharing 2023-04-19 12:16:29 +02:00
Jacques Lucke 0121c23afb initial read sharing across frames 2023-04-19 12:10:59 +02:00
Jacques Lucke 97c38b45a3 read shared attribute 2023-04-19 11:45:22 +02:00
Jacques Lucke 358467e4ee fixes after merge 2023-04-19 11:30:48 +02:00
Jacques Lucke 2567743c20 Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-19 11:26:36 +02:00
Jacques Lucke 5bee640698 progress on read-sharing 2023-04-19 10:53:56 +02:00
Jacques Lucke 7f7ad34f3a fix implicit sharing 2023-04-19 10:42:10 +02:00
Jacques Lucke fcb888a00c initial support for read sharing 2023-04-19 10:09:16 +02:00
Jacques Lucke a22cc59f2f add version to implicit sharing info to detect changes 2023-04-19 09:44:36 +02:00
Jacques Lucke 1a6624c00d check if folder exists 2023-04-19 09:44:01 +02:00
Jacques Lucke 2f83f5e5ee Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-19 08:59:46 +02:00
Jacques Lucke 03ae8eebaf support deleting invalid cache without going back to start frame
buildbot/vexp-code-patch-coordinator Build done. Details
2023-04-18 14:40:43 +02:00
Jacques Lucke 1cf3e710f2 fix incorrectly detecting bake 2023-04-18 14:37:09 +02:00
Jacques Lucke f4538e39c0 Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-18 14:28:25 +02:00
Jacques Lucke 3cdfee7157 Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-18 14:19:18 +02:00
Jacques Lucke a8ee4f93bd support starting simulation at any frame 2023-04-18 14:15:17 +02:00
Jacques Lucke 9b03d441b2 move more to blenkernel 2023-04-18 14:02:40 +02:00
Jacques Lucke 9858f253b5 separate bdata writing and sharing 2023-04-18 13:45:51 +02:00
Jacques Lucke 445dabb36d move more to blenkernel 2023-04-18 13:36:27 +02:00
Jacques Lucke d317cd6b94 move more to blenkernel 2023-04-18 13:15:35 +02:00
Jacques Lucke 8f2f0a55e9 improve api 2023-04-18 12:59:37 +02:00
Jacques Lucke 976362f6a6 move part of serialization code to blenkernel 2023-04-18 12:52:13 +02:00
Jacques Lucke d34ed4f128 simplify api 2023-04-18 12:27:12 +02:00
Jacques Lucke 837d128e7c support baking/freeing multiple selected objects 2023-04-18 12:13:45 +02:00
Jacques Lucke f3a23ebfcc support int2 attributes 2023-04-18 11:44:22 +02:00
Jacques Lucke 871f20435d better poll function for baking 2023-04-18 11:33:43 +02:00
Jacques Lucke 7575f9ff8a Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-18 11:25:40 +02:00
Jacques Lucke 2cacffe3dd better support for attribute sharing in attribute api 2023-04-17 13:10:59 +02:00
Jacques Lucke c0bcf6963c preparation for loading shared data 2023-04-17 12:50:40 +02:00
Jacques Lucke 5858b03c08 initial support for baking instances 2023-04-17 12:09:11 +02:00
Jacques Lucke 8fef1436ec bake entire frame range 2023-04-17 10:15:02 +02:00
Jacques Lucke a365f346ba load baked data automatically 2023-04-17 10:12:49 +02:00
Jacques Lucke f70d4562da load baked data lazily 2023-04-17 10:02:25 +02:00
Jacques Lucke 8e561231aa support deleting baked simulation 2023-04-17 09:46:55 +02:00
Jacques Lucke 4718407ac1 don't hardcode cache folder 2023-04-17 08:49:15 +02:00
Jacques Lucke d3b55f55b3 improve folder name 2023-04-17 08:34:14 +02:00
Jacques Lucke 52c6e1ce5d reset cache before baking 2023-04-17 08:29:46 +02:00
Jacques Lucke 539ae5079e fix 2023-04-17 08:28:15 +02:00
Jacques Lucke 5381661655 improve simulation state handling 2023-04-17 08:23:08 +02:00
Jacques Lucke 57ef46b63f use shared offset arrays 2023-04-17 07:08:46 +02:00
Jacques Lucke 19b6a4d627 fix compile 2023-04-17 07:08:37 +02:00
Jacques Lucke 6c28ba723c Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-17 06:38:49 +02:00
Jacques Lucke ccd583f098 store baked state 2023-04-13 19:25:33 +02:00
Jacques Lucke 78d06aa484 keep weak references during baking 2023-04-13 19:10:41 +02:00
Jacques Lucke da19d64350 initial support for weak pointers to implicit sharing info 2023-04-13 19:06:35 +02:00
Jacques Lucke aab075a6f3 cleanup 2023-04-13 18:44:59 +02:00
Jacques Lucke 1dd994cffa initial support for avoiding writing duplicate data 2023-04-13 18:27:31 +02:00
Jacques Lucke 63434bafbd Merge branch 'geometry-nodes-simulation' into sim-bake 2023-04-13 16:45:32 +02:00
Jacques Lucke f9a40ce7aa initial simulation state loading 2023-04-13 14:01:30 +02:00
Jacques Lucke 228192345a improve file name for baked subframes 2023-04-13 12:46:53 +02:00
Jacques Lucke 731910f90a improve subframe handling 2023-04-13 12:22:02 +02:00
Jacques Lucke 8678c8fcc1 fix 2023-04-13 10:51:52 +02:00
Jacques Lucke cdfba851ae support loading mesh 2023-04-13 10:50:43 +02:00
Jacques Lucke 8eb2ba9551 progress 2023-04-13 10:42:31 +02:00
Jacques Lucke 443ac232d2 simplify bdata writing 2023-04-13 10:02:13 +02:00
Jacques Lucke a56d2137e2 abstract bdata reader and writer classes 2023-04-13 09:31:08 +02:00
Jacques Lucke 64f6f841de write curve offsets 2023-04-12 16:01:24 +02:00
Jacques Lucke ba56f9c168 initial curve loading 2023-04-12 15:49:57 +02:00
Jacques Lucke d3663b66f7 cleanup 2023-04-12 14:56:18 +02:00
Jacques Lucke b21fee101b simplify code 2023-04-12 14:37:44 +02:00
Jacques Lucke cae619baf9 cleanup and improve error handling 2023-04-12 14:29:02 +02:00
Jacques Lucke bed26280c2 handle endianness 2023-04-12 14:09:59 +02:00
Jacques Lucke 9b6532afa9 initial support for reading pointcloud 2023-04-12 13:44:52 +02:00
Jacques Lucke 03491d3785 cleanup 2023-04-12 12:46:45 +02:00
Jacques Lucke e1b721659b cleanup 2023-04-12 12:38:19 +02:00
Jacques Lucke 38c7d7e353 cleanup 2023-04-12 12:29:36 +02:00
Jacques Lucke 57a3034465 cleanup 2023-04-12 12:20:04 +02:00
Jacques Lucke 4883b19941 write poly offsets 2023-04-12 12:18:30 +02:00
Jacques Lucke 94090189cc serialize curves 2023-04-12 12:14:20 +02:00
Jacques Lucke 5f742ff96d fix 2023-04-12 12:06:44 +02:00
Jacques Lucke 6ca47fe062 support serializing pointcloud 2023-04-12 12:04:42 +02:00
Jacques Lucke c6b0c36560 extract function for serializing geometry set 2023-04-12 11:58:06 +02:00
Jacques Lucke a21c58cf0a cleanup 2023-04-12 11:47:49 +02:00
Jacques Lucke 057dd8192b store files in proper place on disk 2023-04-12 11:47:32 +02:00
Jacques Lucke 5760ac48ad store baked data on disk 2023-04-12 10:37:06 +02:00
Jacques Lucke 80028df992 iterate over frames in operator 2023-04-12 08:39:06 +02:00
Jacques Lucke bf782c612f add initial bake operator 2023-04-12 08:19:38 +02:00