Substance 图形中的继承

此页面描述继承如何在Substance 3D Designer内的Substance图表中应用以及它对图表输出的影响。

继承方法 {width="1400px"}

概述

Substance图中的所有节点都可以​ 继承 ​源中某些参数的值。 继承意味着更改源中的值将​在从该源继承的所有节点中执行该更改。 这是Substance 3D Designer生成参数化资源的能力所依据的基本概念之一。

NOTE
在本文档的示例Substance图形部分中提供了说明继承的注释项目文件。

继承方法

“绝对”继承方法的图标 {width="128px"}

绝对

没有继承,为参数任意且本地地定义值​**

“相对于输入”继承方法的图标 {width="128px"}

相对于输入

该值继承自连接到节点​ 主输入 ​的数据

“相对于父代”继承方法的图标 {width="128px"}

相对于主页

该值继承自节点或图形的​父

继承方法演示

对节点的基参数应用继承方法,该参数是所有节点都具有的​ 基本方面 ​行为的公共参数集。 这些参数包括:

  • 输出大小
  • 输出格式(即位深度)
  • 像素大小
  • 像素比率
  • 拼贴模式
  • 随机植入

这应该让您了解​ 一个 ​节点中的更改如何影响它的​ 所有下游节点 ​的分辨率、精度和拼贴行为。

WARNING
要理解此页中讨论的概念,请注意以下重要提示: 实例节点​是表示另一个图形中的图形的节点,它具有其​自己的离散参数值,因此术语是​实例。
例如,同一图形中的两个Perlin噪声节点都是​ 相同 ​源图形(noise_perlin_noise.sbs中的perlin_noise)的表示形式,具有它们自己的​参数值集。
NOTE
输出大小:​使用 锁定按钮使Height值​ 匹配 ​宽度值
随机植入:​使用 按钮向随机植入分配新的随机值。

进行更改

更改继承方法

在“属性”面板中,节点属性的基本参数部分中列出的所有参数都有一个与其标签相对的(图标) 设置继承方法下拉按钮。
此按钮允许您选择用于参数的继承方法。

更改继承方法 {width="512px"}

在大多数情况下,节点​的基参数设置为​相对于输入,以利用将节点链接在一起的过程行为,而​ 图形 ​的基参数设置为​相对于父项,因此全局参数可以适应使用图形的上下文。

调整继承的值

某些基本参数(如输出大小、像素大小或随机种子)可以​ 相对于继承值 ​进行更改。

例如,当“输出大小”参数使用​“相对于……”继承方法时,值或(1, -1)表示​ 高于 ​两个分辨率的整数倍X的继承值,以及​ 低于 ​两个分辨率的整数倍Y的继承值,例如:

  • 继承的值: (9, 9),即2^9, 2^9 = 512, 512
  • 相对值: (1, -1),即2^(9+1), 2^(9-1) = 256, 1024
NOTE
输出大小页深入挖掘此关键Base参数,建议阅读以了解如何计算节点的最终分辨率。

如果将函数应用于Base参数,则还将使用该参数的继承方法解释该函数的结果。
请牢记输出大小示例,一个旨在在X和Y中将继承的分辨率增加两倍的函数应输出(2, 2) Integer2值。

节点和图形的父子关系

使用“相对于父继承”方法时,您应确切了解该父代在特定上下文中处于什么状态。

节点的父级是它所在的​图形。

图表的父级是它存在于​ 上下文 ​中:

  • 如果该图形是作为​ 实例化 ​实例化到另一个主机图形中的子图形,则子图形的父级是​实例化。 该实例化的父级是​主机图形。
  • 如果该图形是根图形,则父应用程序是​ 应用程序本身 ​以及该应用程序为给定参数设置的任何值。 例如,图形将继承自图形视图工具栏中设置的 父项大小 参数。
WARNING
在将包发布到Substance 3D资源文件(SBSAR)时,父子关系是​按原样应用。 这意味着将任何参数设置为​ Absolute ​继承方法将​将该参数锁定,使其在发布资源中保持当前值。
尽管这对于位图节点或优化目的是必需的,例如,我们​ 强烈 ​建议在图形中工作时,使用​*“相对于……”​继承方法,除非这样做有​清晰、深思熟虑的目的*。

IN-CONTEXT EDIT

在图形上使用In-context editing时,节点的父级是​实例化。 在这种情况下,图形视图工具栏中的 父级大小 设置是​禁用的,因为图形是继承自实例化的基本参数。

此特性是上下文编辑的​点,在设置继承方法和评估任何节点的基参数的当前值时,应在​ 中考虑 ​因素。

使用多个输入的继承

当图形有多个输入时,根据其继承方法,每个输入可能继承自其离散输入数据或继承自图形:

“相对于输入”继承方法的图标 {width="128px"}

相对于输入

无论图形的“基本”参数如何,输入都将继承自其离散的输入数据。 这对于控制每次输入的数据非常有用。

“相对于父代”继承方法的图标 {width="128px"}

相对于主页

输入从图形继承,并且其接收的数据相应地被适配。

主要输入

table 0-row-3 0-border-0 1-border-0 2-border-0 3-border-0 html-authored no-header
主输入颜色/灰度 {width="48px"} 主输入颜色 {width="48px"} 主输入灰度 {width="48px"}

通过在该输入图形上单击​人民币,然后在上下文菜单中选择​ 设置为主要输入 ​选项,可以将其中一个输入设置为​主要输入。

输入连接器类型

当图形作为实例节点实例化到另一个图形中时,所有设置为​ 相对于输入 ​的实例节点的Base参数将继承连接到​ 该输入 ​的数据。 实例节点的“主要”输入可以通过其连接器中的小黑点来标识。

设置为​ 相对于父项 ​的其他输入将继承相同的基本参数的值,因为它们继承自​图形,该图形继承自​实例节点*,该节点继承自“主要”输入。

*:如果图形使用*​相对于父级*继承方法,则此项为true。

示例

下面是一些示例,这些示例涵盖了不同的继承情况以及下列操作器中设置的继承方法的相互作用(从上到下):

  1. Application
  2. 主机图形
  3. 主机图形中的实例节点
  4. 子图 — 即实例节点引用的图
  5. 子图中的节点

为操作员设置的​ 继承方法 ​正上方以橙色显示。 继承流​的源,以橙色线条显示。

字母表示基本参数的​个单独集,应有助于跟踪哪个操作者继承了哪些数据。

示例A

继承图A {modal="regular"}

示例B

继承图B {modal="regular"}

示例C

继承图C {modal="regular"}

示例D

继承图D {modal="regular"}

解决继承问题

在构建图表并增加其复杂性时,您可能会遇到因继承而导致的意外结果。 如果节点输出具有错误的分辨率或精度(即,位深度),则您应​ 沿继承链 ​向上移动,以查明这些值的来源。

检查节点下方显示的数据是一个很好的起点:这些是节点​ 第一输出 ​所输出的图像的分辨率、颜色格式和精度。 虽然理解解决方案很简单,但第二部分数据值得详细阐述:

  • 字母前缀​引用图像的颜色格式:

    • L:明亮度(即灰度)
    • C:颜色
  • 数字​引用图像的位深度(从最低到最高精度):

    • 8: 8位整数(0-1中的256步)
    • 16: 16位整数(0-1中的65 536步)
    • 16F: 16位浮点(精度低于0-1的值,包括负数)
    • 32F:32位浮点(精度高于0-1的高值,包括负数)

如果节点有多个输出,可以通过两种简单的方法检查其分辨率和精度:

  • 双击​ 输出连接器 ​上的 LMB 以在2D视图中显示图像,并检查2D视图视口的​ 左下角 ​上显示的图像信息
  • 创建级别或转换2D节点,并将其输入连接到要检查的输出。 默认情况下,节点将​ 从输出 ​继承,然后您可以检查节点下面的值。

现在,您可以在图形中的节点链上查找​第一个节点,其中显示意外值。 检查其Base参数的继承方法。

如果没有任何错误且节点是实例节点,则需要更深入并打开该实例节点引用的图形。 从图形的“输出”节点开始重复以上游的过程。

常见示例

特别是,主要输入​概念易于​忽略,并可能导致继承问题。

混合节点非常容易受此影响,因为它经常使用。 其 Background 输入是其主要输入。

输出大小继承 {width="512px"}

您需要注意混合两个输入的顺序:您希望保留在图表中的分辨率和精度的输入应连接到“背景”输入(如果您需要的混合模式使其成为可能)。 如果不是,则可能需要调整“混合”节点的“基本”参数及其继承方法以进行补偿。

recommendation-more-help
substance-3d-designer-help-guide