Geometry Nodes Workshop
Blender Conference 2022 | Blender 会议 2022 让为几何节点开发团队提供了一次聚会的机会。整个核心团队在阿姆斯特丹举办了为期 4 天的研讨会。参会人员除了 Brecht Van Lommel、Jeroen Bakker 和 Julien Kaspar 等访客外,还有 Dalai Felinto、Hans Goudey、Jacques Lucke 和 Simon Thommes。几何节点开发的这两年内,功能日益强大,Blender Conference 2022 中团队对未来的功能规划及过往的开发过程做了详细的现场演。
在完成几何节点的「程序建模」「毛发」之后,下一个重大的目标是:Simulation(模拟)。据开发者称,开发这样的功能并不难,也微不足道,但它需要一个更清晰且明确的设计与规划,为后续的开发提供标准!受疫情的影响,开发团队长期都是远程办公以及在线协作,像参与 Blender Conference 这样整个团队面对面交流,还是十分困难的。想必未来在相当长的一段时间内,团队核心想要在同一个房间内进行研讨,路还很远!研讨会首先收集了其中一些主题。几何节点研讨会主题包括:Simulation 模拟、Loops 循环、Geometry Object 几何对象、Switch Node 切换节点。其他在这里深入介绍,但您可以跳到本文末尾以找到完整的列表。
Simulation 模拟
到目前为止,几何节点一直专注于动画方面。在这些情况下,每一帧都可以独立于其他帧进行计算,并且没有“状态”。另一方面,模拟是使用一帧的结果来影响下一帧。因此,随着时间的推移,即使是一组简单的规则也会导致复杂的结果。其中最常见的类型是 Physics Simulation 物理模拟,使用特定的物理现象求解器。
Local vs Global 本地与全局
一些模拟是本地的(例如:挥舞的旗帜),而另一些模拟是全局的,多个物体相互作用(例如:足球对着球门网)。在 Blender 中,布料和头发模拟及与本地(局部),模对象之间没有碰撞计算,而刚体是全局的。在此基础上,模拟规划是首先支持本地(局部)模拟,然后扩展设计以考虑全局模拟。
Simulation Nodes 模拟节点
用户使用当前仅有的的节点便可以做很多工作,仅仅利用调用前一帧的数据就可以实现复杂的模拟效果。根据这一前提,将由两个专用节点进行模拟,并可以使用“几何节点”中已可用的所有其他节点:
Simulation Input 模拟输入
Simulation Output 模拟输出
Simulation Input 模拟输入节点,艺术家可以控制模拟何时开始运行,并将要模拟的几何图形和值作为字段传递。增量时间(自上次模拟步骤以来的时间差)和经过时间可用于模拟。可以在模拟区域内使用常规节点。Simulation Output 模拟输出节点允许模拟根据内部状态停止,并接收传递到模拟下一步的几何图形和场。在模拟区域之外,可以知道模拟是否开始/结束、经过的时间,并获得模拟几何体及其模拟属性。
连接到 “Simulation Input 模拟输入节点” 输入接口仅在模拟开始时评估一次,然后传递到下一个模拟状态并最终输出。其他节点可以从外部链接到模拟区域内。每个步骤都会根据给定帧的值重新估算值。按照设计,不可能有任何通向外部的链接。只能通过“模拟输出”节点输出模拟结果(其他节点访问模拟结果)。支持运动模糊的子帧插值。
Simulation Clock 模拟时钟
首先,除了支持子步骤外,模拟将与动画系统联动。它只会在动画帧更改时进行估算,并且可以像 Blender 中现有的物理模拟一样进行缓存。最终模拟将能够在自己的时钟上运行。物理/实时时钟应独立于动画时钟运行,这允许用户以交互的方式设置和控制模拟。
Loops 循环
早在 2021 年 5 月,艺术家 Erindale Woodford 埃林代尔·伍德福德就被要求提供一份全面的反馈意见。说明如何实现弧形的墙体,以及哪可能会出现的问题。虽然墙壁和弧线是可行的,但在循环节点之前,墙体之上的藤蔓植物生成的工作太多了。节点中有两个主循环,两者都可以在仿真设计之上构建:串行循环和并行循环。有两个主要循环节点,这两个循环都可以在模拟设计的基础上进行构建:Serial loops 串行循环和 Parallel loops 并行循环。
Serial Loop 串行循环
有时,一组节点的逻辑需要在串行循环中连续重复。在完成模拟系统的设计之后,用户可以控制回调参数(例:最大迭代次数)并决定何时停止模拟。串行和模拟循环之间有一些相似之处!不过,虽然模拟循环与时间进程相关,但串行循环在每一帧都会被完全重新计算(评估、估算)。也就是说,串行循环节点之后的动画结果,每一帧都会重新计算。
Parallel Loop 平行循环
如果不是按顺序运行,而是同时运行,那么就需要一个并行循环的节点。Parallel Loop 并行循环规划有两种模式:Count 计数和 Elements 元素。
Count 计数:一个更通用的循环模式,对应的有几何(或已规划的列表)输出。这是并行创建的单个几何的组合,输出为几何组合的输出
Elements 元素:专门用于迭代几何中的元素。例:点、边等。此模式的输出节点,可输出几何中与当前迭代相对应的部分
Nested Loop 嵌套循环
循环可以嵌套在其他循环、模拟内部,视觉上请参考上图,但不意味着这就是最终的 UI 界面视觉外观,仅供参考!
Visuals explorations 视觉探索
图中所展示的设计效果,看起来不错,但主要的焦点在功能层面。关于这些功能的最终视觉外观,还有很多可以探讨的空间,这是研讨会后的后续工作。下图中提供了一些早期的视觉外观设计:
上图所示:Convex Hull 多边形凸壳、Overlaid Input and Output 叠加输入与输出。目前可讨论的其他想法:
在同一行上对齐输入和输出
节点面板
Geometry Object 几何对象
几何节点允许读取 Geometry Object 几何对象的不同类型。同一对象可以具有:体积、曲线、点云、网格和实例数据。这与 Blender 的原始底层设计不太一致,其中对象类型是刚性的,将决定可用的编辑模式以及属性编辑器中的面板。为了使事情变得更复杂,自从新的头发系统以来,有一种方法来冻结节点树的部分并编辑(烘焙)生成的几何体将变得更加明显。这会导致任何对象可能具有多个可编辑网格,或网格、曲线和其他几何体的组合。
解决方案是将所有与几何体相关的对象类型统一为几何体类型。这些对象应支持多个可编辑的几何图形,而活动的编辑数据决定了哪些模式和面板可用。Blender 中的基本物体(例如:Cube 立方体、Cylinder 圆柱体… 等)可以具有初始修改器,在该修改器中提供使用“Edit geometry 编辑几何体”的相关设置选项。对于不想深入节点并想直接进入编辑模式的用户来说,功能上没有什么不同。基本体的初始节点组设置,节点使用的数据块也可以公开为输入,以使设置简单。
Meun Switch 菜单切换
用户可以使用节点组重新创建任何内置节点是几何节点的指导原则之一。到目前为止,最大的限制是某些节点采用下拉菜单作为选项的部分。那 Meun Switch 菜单开关和菜单插槽节点应允许用户缩小这一范围(用户可以选择那些选项可以在节点组中编辑,这么做可以是的节点组中的节点选项更少,也符合用户自定义的高级需求)。菜单项名称在属性区域的节点属性中编辑。
Other Topics 其他主题
您可以在完整的报告中阅读这些主题:更多信息
Spreadsheet Editing 电子表格编辑
Import Nodes 导入节点
Attribute Editing 属性编辑
Dynamic Socket Type 动态插槽类型
Dynamic Socket Count 动态插槽计数
Automatic Caching 自动缓存
Freeze Caching 缓存冻结
Geometry Object 几何对象
Usability 可用性
Node UI 节点用户界面
Math Nodes 数学节点
Preview Node 预览节点
Comments 评论