Blender动画节点插件用户指南-调用子程序

Blender动画节点插件用户指南-调用子程序
推荐:将 NSDT场景编辑器 加入你的3D开发工具链

调用子程序

调用在场景中任何节点树中定义的子程序。“选择”按钮允许您选择要调用的所需子程序,即 子程序列表将被提升,列出其描述,输入 和输出。

image

我们可以看到场景中有两个子程序,子程序 1 和子程序 2,后者有两个输入,KD 树和位置类型分别为 KD 树矢量列表和一个 输出浮点列表类型的半径以及描述 子程序的作用。

该节点还有一个插入空子程序运算符,它将添加 您选择的类型的空子程序定义,并将其设置为 要调用的必需子程序。

缓存

调用节点为动画节点提供缓存机制。 缓存是将子程序的输出存储在 内存,在将来的执行中,子程序不会执行并且 而是返回存储的输出。该节点提供三个 存储和更新缓存的机制,即重新计算 输出并存储它们。可以清除缓存以强制 重新计算输出。

注意

每当子程序定义时,都会自动清除缓存 改变。

缓存选项在 节点,其中包含显示选项的“显示缓存选项”节点 在节点本身中。默认情况下禁用缓存,如果启用可以 通过按清除缓存按钮清除。

一下

此机制存储缓存,并且从不更新它,除非它是 清除。此机制的典型用途是缓存以下数据: 计算成本高昂,但它永远不会改变,通过使用缓存,可以避免 在每次执行时不必要地重新计算数据。例如,如果一个 正在解析由大约 100k 行组成的日志,将文件拆分为 行大约需要 25 毫秒,因为无论 任何因素,都可以缓存结果文本列表,从一个人的 执行时间。缓存可以通过封装拆分节点来完成 在组中并启用一次性缓存选项。

image

每个输入一次

此机制存储多个缓存,每个组合一个缓存 的输入。请注意,此机制仅适用于输入数据 可比较的类型,即可显示为 相等,例如,可以比较整数、布尔值和 浮子,但是,无法比较 KD 和 BVH 树。这 如果您的输入具有已知范围并且 可能性有限。

警告

避免编辑浮点数(及其导数,如向量、矩阵和 四元数)使用此机制时,因为对于每个输入 将是一个缓存,这将立即消耗您的内存!

例如,如果要沿其偏移网格的顶点 基于距离的法线 Voronoi 图,距离计算 对于高多边形网格来说将非常昂贵。一个可以封装 公开种子和数字的组中的距离计算节点树 单元格作为输入并启用每个输入一次,通过这样做,每个输入 组合将缓存其结果距离,并将用于 将来,如果再次使用该组合。

请注意节点树第一次执行大约需要 100 毫秒的时间 输入每个输入组合,而如果我们只需要大约 7 毫秒 再次输入相同的组合,表示第二次, 节点使用缓存而不是重新计算输出。

每帧一次

此机制存储多个缓存,每个帧一个缓存和 副车架(如果可用)。如果您有时间,这特别有用 基于计算成本高昂并希望在中查看的动画 实时用于微调目的或缓解其他阶段 着色和渲染等制作。

例如,如果上一个示例的单元格是基于摆动的 按时,可以将距离计算节点树封装在里面 一个组并启用每帧一次,通过这样做,每个帧将具有 它自己的缓存,运行动画一次后,动画可以 实时查看。

请注意,第一次运行的 fps 约为 17,而最大值为 指示未来运行使用缓存而不是 重新计算输出。

3D建模学习工作室翻译整理,转载请标明出处!

上一篇:Blender动画节点插件用户指南-脚本 (mvrlink.com)

下一篇:Blender动画节点插件用户指南-表达式 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号