这些只是一些想法,我认为需要一些规划。我不知道有任何教程解释如何构建节点编辑器,但是由于有这么多节点编辑器存在,您最好的灵感来源可能是其他人的代码库。
我想你可以看看现有的技术:
https://architecture.mit.edu/computation/project/visual-programming-three-dimensions-visual-representations-computational-mental
另外,我认为你可以这样计划:
required
- 考虑使用一个现有的3d框架,比如openframeworks或Unitue
- ,设计一个命令调色板或键盘快捷键列表,这些东西将是现有的2d便笺编辑器,考虑评估John (基于流的编程)以及NoFlo或PyFlow等其他方面的工作,您可以研究那些有实际用户的东西,比如Unreal,或者最近,我认为统一也有一个。
- 设计了一个执行引擎(代码将如何实际运行,输入端口,输出端口,您将使用的存储/加载网络的格式,是sqlite吗?)杰森?您需要存储节点的坐标和尺寸以及节点之间的连接吗?
- ,如果要定位一个新节点,它将放在哪里?您需要指出3d空间中的任意点吗?还是让新的节点位置相对于现有的objects?
- component属性编辑器可能很重要,每个节点可能都有自己的属性集,每个节点是否是自定义的,以及用于编辑的自定义ui?还是所有节点都有一个通用的属性编辑器?这些决定应该作出。
可以使用自定义节点属性使用户的ui更容易,但是全局属性编辑器将允许您相对便宜地创建许多组件。
- 需要支持哪些操作?你需要自动布局算法吗,比如图维兹的点?
- 运行时允许一步一步地执行吗?节点统计?实时visualization?
- 考虑一下这个工具的目标市场是谁,为什么这个工具在现有工具之外是有用的,是不是音乐艺术家在使用下一个vvvvv?或者是平面艺术家在制作下一个着色器?会对web开发有用吗?还是特定的利基?
我希望你会发现这些想法和想法在你的过程中很有用,我也期待着你所建立的东西。