Commit Graph

127 Commits (44087d7a7c53f04e81eb9389500e3146e8afc5b5)

Author SHA1 Message Date
Martin Felis 3d55b748e6 Refactored anim graph data usage and evaluation.
- Refactored NodeSocketAccessor to NodeDescriptor.
- Connections are wired up during AnimGraph instantiation.
  - Output and input sockets point to the same memory location.
  - No re-wiring needed during evaluation.
  - AnimGraph are pre-allocated (refactoring for less memory usage postponed).
- Evaluation of AnimGraph now possible from the editor.
2023-04-01 14:16:20 +02:00
Martin Felis 91607baa9d Initial step for connectivity refactor.
Instead of wiring up pointers with prepareNodeEval() and finishNodeEval() use for each connection a single memory block where outputs and inputs point to.
2023-03-30 23:50:07 +02:00
Martin Felis 411aa5ef20 Better split between runtime library and editor. 2023-03-30 18:11:54 +02:00
Martin Felis 9168dec9f9 Added NodeDescriptor::UpdateFlags() to set Blend2 weight input flags. 2023-03-30 16:53:09 +02:00
Martin Felis 9dd10e8f27 Initial version of NodeDescriptor which aims to replace NodeSocketAccessor. 2023-03-29 22:25:09 +02:00
Martin Felis 08283d9bcf Evaluation of very simple graphs works. 2023-03-28 22:00:58 +02:00
Martin Felis e38c0b4934 Started working on graph initialization in ATP Editor. 2023-03-26 23:39:11 +02:00
Martin Felis a1931185d8 Simple AnimationPlayer now working. 2023-03-26 18:53:32 +02:00
Martin Felis 80ea25483b Started working on the animation player widget. 2023-03-26 15:01:44 +02:00
Martin Felis 7152fa74e1 Added SkinnedMeshResource 2023-03-26 13:28:12 +02:00
Martin Felis 15871f349c Updated ozz-animation to version 0.14.1 @35b2efd4 2023-03-26 13:28:12 +02:00
Martin Felis bf3189ff49 Some more improvements of editor persistence. 2023-03-26 13:28:12 +02:00
Martin Felis 3d387a5dad Better serialization of application state. 2023-03-25 23:50:03 +01:00
Martin Felis 8a91c7700a Minor UI improvements. 2023-03-16 23:51:49 +01:00
Martin Felis aa9ab1def1 Added missing test data 2022-10-18 22:34:01 +02:00
Martin Felis 2a8a5a5e40 Use std::list for animation data eval buffer.. 2022-04-18 23:14:34 +02:00
Martin Felis 68331467f0 Refactored graph evaluations. 2022-04-18 20:02:16 +02:00
Martin Felis 5e7a48b2eb WIP: graph evaluations. Fixed various memory issues, better tests. 2022-04-14 18:03:36 +02:00
Martin Felis 2da07ef961 Working on graph evaluations. WIP. 2022-04-13 15:48:39 +02:00
Martin Felis b518220576 Added test which creates skeleton and animation during runtime. 2022-04-13 11:14:29 +02:00
Martin Felis eeef635c64 Initial works for actial animation sampling and graph evaluation. 2022-04-11 16:46:09 +02:00
Martin Felis bf0c7a7daa Added Tests for MathAdd Node 2022-04-11 11:40:53 +02:00
Martin Felis e7314e3477 imnodes: pin coloring and connectivity logic 2022-04-08 12:48:04 +02:00
Martin Felis 5d8c1e289b Initial graph evaluations, added Float to Vec3 Node, minor editor tweaks. 2022-04-03 21:05:11 +02:00
Martin Felis 08ae84fcb4 New evaluation scheme.
- Animation Data are always referenced via a pointer in nodes.
- Animation Data storage pointers are injected from graph when node is evaluated.
- Node value outputs always stored in node.
- Node value inputs always referenced via pointer. References are created when instantiating the graph.
2022-04-01 13:19:54 +02:00
Martin Felis abddbea62b Refactoring. 2022-03-25 12:05:56 +01:00
Martin Felis 6c0c0599f8 Removed old animation graph code. 2022-03-25 11:51:37 +01:00
Martin Felis 72a67195e6 Use socket pointers instead of indices for connections. 2022-03-25 11:23:03 +01:00
Martin Felis 84a9ef6f14 Use node pointer to check whether we use graph input/output nodes instead of indices. 2022-03-25 11:03:53 +01:00
Martin Felis 2f646bc5ec Simpler conversion SocketType <-> Strings. 2022-03-25 10:59:12 +01:00
Martin Felis 73e7a60875 Minor cleanup. 2022-02-24 23:47:31 +01:00
Martin Felis 976875c218 Added index member to node, preparing synctrack and node evaluation. 2022-02-24 22:55:40 +01:00
Martin Felis d6453911e2 Removed node input splitting. 2022-02-24 22:06:47 +01:00
Martin Felis 306a2cb4d8 Minor fix to node input splitting. Not sure it is a good idea anymore, though... 2022-02-22 22:49:12 +01:00
Martin Felis ef74f39cf4 Splitted animation and data node inputs. 2022-02-22 22:34:13 +01:00
Martin Felis af5d27db85 Simple time propagation works. 2022-02-22 22:03:26 +01:00
Martin Felis 87eb2ab7df Mark all nodes that connect to the graph output nodes by default as active. 2022-02-20 16:00:45 +01:00
Martin Felis b01acc2a88 Added marking of nodes active/inactive. 2022-02-20 15:57:19 +01:00
Martin Felis 618f6b613e Minor test cleanup. 2022-02-19 12:18:54 +01:00
Martin Felis da916a7346 Added node ordering code and tests. 2022-02-19 12:16:57 +01:00
Martin Felis bd304bde4e Give access to node inputs in runtime graph, initial works for marking of active nodes. 2022-02-19 00:25:51 +01:00
Martin Felis 9069a8192b Added serialization and deserialization of properties. 2022-02-18 23:33:30 +01:00
Martin Felis ee6a8eb29a Basic node properties editor. 2022-02-18 22:24:19 +01:00
Martin Felis 0d0b181ebb Unified handling of nodes in editor. 2022-02-15 21:06:12 +01:00
Martin Felis 9b743fd081 Links can be removed in graph editor. 2022-02-15 20:57:59 +01:00
Martin Felis 3e02f28b18 Graph Input/Output wiring added. 2022-02-14 22:37:19 +01:00
Martin Felis bbab4d8608 Graph editor allows instantiation of different node types. 2022-02-12 12:06:25 +01:00
Martin Felis 2b7cbe9d4c Simple graph output connection working. 2022-02-12 11:46:50 +01:00
Martin Felis c2ae0a11d2 WIP AnimGraph instantiation. 2022-02-12 10:14:26 +01:00
Martin Felis c5b0d1f976 Initial graph editor and graph instantiation from file. 2022-02-11 16:51:18 +01:00