如何制作 3D 可视化编程语言
How can I make a 3D visual programming language
这不是开玩笑。我想要教程。
我想做一个3D(节点编辑器/编程语言/图形编辑器)像这样的图片:
我该怎么做?
这些只是对此事的一些想法,我认为一些规划会被要求uired。
我不知道有任何教程解释如何创建 uild 节点编辑器,但由于存在如此多的节点编辑器,也许您最好的灵感来源是其他人的代码库。
我觉得你可以看看现有技术:
另外,我觉得你可以这样规划:
- 弄清楚它会是什么样子(也许你可以先在 blender 上制作模型)
- 考虑允许什么样的交互,鼠标将如何工作?
- 考虑使用现有的 3d 框架,如 openframeworks 或 unity
- 设计一个命令选项板或键盘快捷键列表,列出需要的东西ui红色
- 研究现有的 2d 笔记编辑器,考虑评估 John Paul Morrison(基于流的编程)的工作以及 NoFlo 或 PyFlow 等许多其他东西,你可以研究那些有实际用户的东西,比如 Unreal Node Editor,或者最近我觉得 Unity 也有一个。
- 设计一个执行引擎(代码实际如何 运行、输入端口、输出端口等)。
- 考虑您将用于 saving/loading 网络的格式,是 sqlite 吗? json?您是否需要存储节点的坐标和尺寸,以及节点之间的连接?
- 如果要定位一个新的节点,它会放在哪里?您需要在 3d space 中指示任意点,还是让新节点位置相对于现有对象更好?
- component 属性 编辑器可能很重要,每个节点可能都有自己的一组属性,每个节点是否都是自定义的,带有自定义 ui 用于编辑?还是所有节点都有一个通用的 属性 编辑器?应该做出这些决定。
自定义节点属性可用于使 ui 对用户来说更容易,但是
全局 属性 编辑器将允许您以相对便宜的方式创建许多组件。
需要支持哪些操作?你需要自动布局算法吗,比如 graphviz 的点?
运行时间允许逐步执行吗?节点统计?实时可视化?
考虑谁是这个工具的目标市场,为什么这个工具在现有工具之外会有用,是音乐艺术家使用下一个 vvvvv 吗?还是图形艺术家正在制作下一个着色器?对网络开发有用吗?还是针对特定的细分市场?
我希望你会发现这些想法和想法在你的过程中有用,我期待着你会做的事情uild。
这不是开玩笑。我想要教程。
我想做一个3D(节点编辑器/编程语言/图形编辑器)像这样的图片:
我该怎么做?
这些只是对此事的一些想法,我认为一些规划会被要求uired。 我不知道有任何教程解释如何创建 uild 节点编辑器,但由于存在如此多的节点编辑器,也许您最好的灵感来源是其他人的代码库。
我觉得你可以看看现有技术:
另外,我觉得你可以这样规划:
- 弄清楚它会是什么样子(也许你可以先在 blender 上制作模型)
- 考虑允许什么样的交互,鼠标将如何工作?
- 考虑使用现有的 3d 框架,如 openframeworks 或 unity
- 设计一个命令选项板或键盘快捷键列表,列出需要的东西ui红色
- 研究现有的 2d 笔记编辑器,考虑评估 John Paul Morrison(基于流的编程)的工作以及 NoFlo 或 PyFlow 等许多其他东西,你可以研究那些有实际用户的东西,比如 Unreal Node Editor,或者最近我觉得 Unity 也有一个。
- 设计一个执行引擎(代码实际如何 运行、输入端口、输出端口等)。
- 考虑您将用于 saving/loading 网络的格式,是 sqlite 吗? json?您是否需要存储节点的坐标和尺寸,以及节点之间的连接?
- 如果要定位一个新的节点,它会放在哪里?您需要在 3d space 中指示任意点,还是让新节点位置相对于现有对象更好?
- component 属性 编辑器可能很重要,每个节点可能都有自己的一组属性,每个节点是否都是自定义的,带有自定义 ui 用于编辑?还是所有节点都有一个通用的 属性 编辑器?应该做出这些决定。
自定义节点属性可用于使 ui 对用户来说更容易,但是 全局 属性 编辑器将允许您以相对便宜的方式创建许多组件。
需要支持哪些操作?你需要自动布局算法吗,比如 graphviz 的点?
运行时间允许逐步执行吗?节点统计?实时可视化?
考虑谁是这个工具的目标市场,为什么这个工具在现有工具之外会有用,是音乐艺术家使用下一个 vvvvv 吗?还是图形艺术家正在制作下一个着色器?对网络开发有用吗?还是针对特定的细分市场?
我希望你会发现这些想法和想法在你的过程中有用,我期待着你会做的事情uild。