【问题标题】:How can I make a 3D visual programming language如何制作 3D 可视化编程语言
【发布时间】:2020-05-02 09:59:26
【问题描述】:

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

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

我该怎么做?

【问题讨论】:

    标签: graph 3d visual-programming


    【解决方案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 等许多其他东西,您可以研究具有实际用户的那些,例如虚幻节点编辑器,或者最近我认为 Unity 也有一个。
    6. 设计执行引擎(代码将如何实际运行、输入端口、输出端口等)。
    7. 考虑一下用于保存/加载网络的格式,是 sqlite 吗? json?您是否需要存储节点的坐标和维度以及节点之间的连接?
    8. 如果要定位一个新节点,它会放在哪里?您是否需要指示 3d 空间中的任意点,还是让新节点位置相对于现有对象更好?
    9. 组件属性编辑器可能很重要,每个节点都可能有自己的一组属性,每个节点是否都是自定义的,带有用于编辑的自定义 UI?还是所有节点都有一个通用属性编辑器?应该做出这些决定。

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

    1. 需要支持哪些操作?你需要像graphviz的dot这样的自动布局算法吗?

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 2011-05-15
      • 1970-01-01
      • 2012-03-15
      • 2013-09-10
      • 2011-04-18
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多