0

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

我想做一个像这张图一样的3D(节点编辑器/编程语言/图形编辑器):

在此处输入图像描述

我怎样才能做到这一点?

4

1 回答 1

1

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

我认为您可以查看现有技术:

https://architecture.mit.edu/computation/project/visual-programming-three-dimensions-visual-representations-computational-mental

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

  1. 弄清楚它会是什么样子(也许你可以先在搅拌机上做一个模型)
  2. 想想将允许什么样的交互,鼠标将如何工作?
  3. 考虑使用现有的 3d 框架,如 openframeworks 或 unity
  4. 设计一个命令面板或键盘快捷键列表
  5. 研究现有的 2d 笔记编辑器,考虑评估 John Paul Morrison 的工作(基于流的编程)以及 NoFlo 或 PyFlow 之类的东西,你可以研究那些有实际用户的东西,比如 Unreal Node Editor,或者最近我认为 Unity也有一个。
  6. 设计一个执行引擎(代码将如何实际运行,输入端口,输出端口等)。
  7. 考虑您将用于保存/加载网络的格式,是 sqlite 吗?json?您是否需要存储节点的坐标和维度以及节点之间的连接?
  8. 如果要定位一个新节点,它会放在哪里?您是否需要指示 3d 空间中的任意点,还是让新节点位置相对于现有对象更好?
  9. 组件属性编辑器可能很重要,每个节点可能都有自己的一组属性,每个节点是否都是自定义的,带有用于编辑的自定义 ui?还是所有节点都有一个通用属性编辑器?应该做出这些决定。

自定义节点属性可用于使用户界面更容易,但全局属性编辑器将允许您相对便宜地创建许多组件。

  1. 需要支持哪些操作?你需要自动布局算法,比如graphviz的点吗?

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

  3. 考虑一下你的目标市场是谁,以及为什么这个工具会在现有工具之外有用,是音乐艺术家使用下一个 vvvvv 吗?或者是图形艺术家制作下一个着色器?对Web开发有用吗?还是针对特定的利基市场?

我希望您会发现这些想法和想法在您的过程中很有用,我期待您将构建的东西。

于 2021-02-08T15:09:54.363 回答