Graph 如何制作三维可视化编程语言

Graph 如何制作三维可视化编程语言,graph,3d,visual-programming,Graph,3d,Visual Programming,这不是玩笑。我想要一个教程 我想制作一个3D(节点编辑器/编程语言/图形编辑器),如下图所示: 我该怎么做呢?这些只是对这件事的一些想法,我想需要一些计划。 我不知道有任何教程解释如何构建节点编辑器,但由于存在如此多的节点编辑器,也许你最好的灵感来源可以是其他人的代码库 我想你可以看看现有技术: 另外,我认为你可以这样计划: 弄清楚它会是什么样子(也许你可以先在blender上做个模型) 想想什么样的互动将被允许,鼠标将如何工作 考虑使用现有的3d框架,如openframeworks或uni

这不是玩笑。我想要一个教程

我想制作一个3D(节点编辑器/编程语言/图形编辑器),如下图所示:


我该怎么做呢?

这些只是对这件事的一些想法,我想需要一些计划。 我不知道有任何教程解释如何构建节点编辑器,但由于存在如此多的节点编辑器,也许你最好的灵感来源可以是其他人的代码库

我想你可以看看现有技术:

另外,我认为你可以这样计划:

  • 弄清楚它会是什么样子(也许你可以先在blender上做个模型)
  • 想想什么样的互动将被允许,鼠标将如何工作
  • 考虑使用现有的3d框架,如openframeworks或unity
  • 设计一个命令调色板或键盘快捷键列表
  • 研究现有的2D注释编辑器,考虑对John Paul Morrison(基于流程的编程)和NoFLO或PyFlow之类的事物进行评估,在其他许多方面,您可以研究那些具有实际用户的对象,比如虚幻节点编辑器,或者最近我认为Unity也有一个。
  • 设计一个执行引擎(代码实际如何运行、输入端口、输出端口等)
  • 考虑一下用于保存/加载网络的格式,是sqlite吗?json?是否需要存储节点的坐标和尺寸,以及节点之间的连接
  • 如果要定位一个新节点,它将放在哪里?是否需要指示三维空间中的任意点,或者使新节点位置相对于现有对象更好
  • 组件属性编辑器可能很重要,每个节点可能都有自己的属性集,每个节点是否都是自定义的,是否有自定义的ui进行编辑?或者所有节点都有一个通用属性编辑器?应该作出这些决定
  • 但是,自定义节点属性可用于让用户更容易使用ui 全局属性编辑器将允许您以相对较低的成本创建许多组件

  • 需要支持哪些操作?您是否需要自动布局算法,如graphviz的点

  • 运行时是否允许逐步执行?节点统计?实时可视化

  • 考虑一下这个工具的目标市场是谁,为什么这个工具在现有工具之外会有用,是音乐艺术家在使用下一个VVV吗?还是图形艺术家在制作下一个着色器?对web开发有用吗?还是为了一个特定的利基

  • 我希望你会发现这些想法和想法在你的过程中很有用,我期待着你将要建立的东西