使用SDF 函数
在16.0.0版中,Substance 3D Designer向创作SDF 函数引入了一组强大的节点,可用于创建和处理程序化3D形状。
SDF 函数是Substance函数图表,它们组合了工具集中提供的SDF节点,并应用于支持SDF 函数的节点中的专用参数。
首先,请记住,基本工作流程如下所示:
什么是SDF 函数?
这些功能在计算机图形学中有着广泛的应用,如绘制表面、阴影投影、轮廓遮蔽、碰撞检测等。
在Substance 3D Designer中,SDF 函数用于以程序化的方式创建和操作3D形状。
SDF 函数的输出和预期用途
SDF 函数节点输出单个浮点值:到最近曲面的带符号距离。
然而它们还有更多功能:它们从内部获取和设置变量值,主机节点需要定义和/或了解这些变量来处理和绘制生成的形状。
这意味着,这些节点需要在 支持SDF 函数 的节点上下文中使用,因为它知道这些变量并原生集成它们。
Substance函数图
SDF 函数节点旨在用于专用Substance功能图形,因此仅在该图形类型中可用。
应作为函数表示的节点参数使用“编辑函数”按钮。
关于Substance函数图形您需要了解的内容:
快速入门
对于编写的SDF 函数,首先需要将其可视化,以便了解所调整节点和参数的影响。
3D查看器节点具有用于可视化使用SDF 函数创作的形状的专用模式:将节点的 场景类型 参数设置为SDF function,然后单击 编辑函数 按钮以打开将托管SDF 函数本身的函数图表。
该节点提供了用于可视化SDF 函数各方面的专用功能,这些功能将让我们更直观、更高效地构建节点,例如边界帧和等值线。
物理太阳/天空节点可用于在3D查看器中快速设置环境光照。
| table 0-row-2 0-border-none 1-border-none 2-border-none html-authored no-header | |
|---|---|
|
所有SDF 函数节点及其输入连接器都有工具提示,可让您详细了解其用途和使用方法。 一定要检查他们! |
|
设置节点值
与Substance函数图形中的所有节点一样,SDF 函数节点没有参数,只有作为参数的输入连接器。
若要设置这些输入的值,您可以使用常量Float,例如节点、Float3和整数3。
您可以按照常规方式通过node菜单创建这些节点,或者从连接器中拖动新连接以从匹配类型节点的过滤列表中受益。
大多数SDF 函数节点的输入连接器都有一个默认值,此默认值在其工具提示中公开。
| table 0-row-2 0-border-none 1-border-none 2-border-none html-authored no-header | |
|---|---|
|
如果您不需要始终保持某些值可见,请使用 您还可以使用注释来跟踪值。 |
|
定界帧
等值线
SDF 函数节点类别
在库中,SDF 函数节点根据其功能和目的进行分类。
您可以根据需要创建任意数量的库视图来整理工作区,使SDF 函数工具集按类别排列,同时保持一切就绪。 转到 窗口>新建库 视图以添加库的单独独立视图。
基元
SDF 函数的基本构成要素,您可以通过这些要素创建球体、箱子、圆柱体等基本形状。
运算符
通过这些节点,可以合并和修改使用图元创建的形状。 其中包括:
变换
形状可以多种方式进行变换,例如平移、旋转、缩放、扭曲等等。
通过这些节点,您可以通过 变换定义曲面的空间本身 来执行这些变换。
该空间称为P,请转到下一部分,以了解更多有关这意味着什么以及空间转换的工作方式的信息。
材质
对于使用SDF 函数创作的形状,可以使用基本材料管理。
您可以定义基本材料属性:颜色、粗糙度和金属度,以用于3D查看器节点中的直接可视化,或作为形状飞溅v2节点中材料工作的基础。
您也可以将材料ID指定给形状的不同部分以将其分开。
了解有关这些节点以下的应用程序的更多信息。
“P”输入
当我们对形状应用变换,例如偏移或旋转,我们实际上变换了定义形状的空间。
如果我们想将变换应用到其他形状,例如,如果我们想以相同的方式旋转多个形状,我们需要确保它们都使用相同的变换空间。
通过使用其专用的P输入(可在大多数SDF节点中找到),可以在节点之间共享变换空间。
“P”表示世界空间 P 位置:表示世界空间中点坐标的3D矢量。
偏移P和旋转P节点变换空间,并允许您将该转换传播到应继承它的所有节点。
例如,通过将多个形状的P输入连接到同一个“旋转P”节点,可以一起旋转多个形状。
这不仅仅是一个便利的问题,而是要确保SDF节点在空间中的位置相同。
示例如下:
重复球体以将空间可视为3D网格。 重复空格重复此域。
如果没有共享P,弯曲圆柱将使用球面使用的重复空间。
使用共享的P,可以在共享的旋转空间中正确定义形状。
使用“形状飞溅v2”节点中的SDF 函数
在3D查看器SDF 函数的上下文中完成节点后,您可以复制整个函数并将其粘贴到形状飞溅v2节点中,以将其用作该节点的形状生成器。
将 形状类型 参数设置为SDF function,然后转到 图案SDF 函数 参数并单击 编辑函数 按钮以打开该参数的函数图形。
然后可以将从3D查看器图形复制的函数粘贴到该节点中。 (不要忘记再次设置函数图形的输出节点!)
确保调整 SDF边界帧大小 参数以匹配您在3D查看器帧中使用的边界节点,并确保形状绘制正确。
形状类型 设置为SDF function的形状飞溅v2。 请注意,SDF边界帧大小已调整为适合形状。
- 您对函数所做的任何更新都将反映在两个节点中,而无需再次复制粘贴。 这是对复杂形状生活质量的极大改进。
- 该图形可具有在实例化中可见的描述性名称,这将使使用您自己的SDF形状库更加易于管理,并使您的图形更具可读性。
- 您可以为函数图形创建输入,以便与Get节点一起使用。 这些输入将在实例化中作为输入连接器公开,并允许您轻松进行形状变化。
材质 ID
可以为SDF形状分配材料ID,该整数值可用于在3D查看器和形状飞溅v2节点中区分形状的某些部分并为它们分配不同的材料。
请注意,具有不同材料ID的曲面在混合形状上用硬边分割,如下例所示。
在要用特定材料ID标记的形状部分后面使用设置材料ID节点,并使用整数常量节点设置所需的材料ID值。
在3D查看器节点中,将 输出 参数设置为Material ID以可视化形状的材料ID。
在右侧,合成两个3D查看器节点的输出以显示形状(左)及其材料ID(右),以说明在混合形状中,如何在材料ID拆分时插值材料。
材料ID可由Shape Splatter v2伴随节点使用:
- 形状飞溅v2映射器节点可以使用这些材料ID来分配不同的模式。
- 要遮盖的形状飞溅v2可以根据形状的材料ID遮盖部分形状。
色彩、粗糙度和金属感
使用设置颜色、设置粗糙度和设置金属度SDF 函数可以为形状定义这些材料属性。
然后,在形状飞溅v2节点中将该SDF 函数用作形状类型时,这些材料属性将作为映射显示在节点的SDF粗糙度、SDF颜色和 SDF金属性 输出中。 这些映射可以作为使用其他节点进行更复杂材料工作的基础。
请注意,与材料ID不同,值在混合形状上作为渐变进行插值,如下例所示。