Matter

一张用程序化方式搭建 PBR 材质的节点图:不受分辨率限制、可反复调整,并能导出为一整套贴图。

一句话概括#

把程序化节点连接起来,另一端就会得到一份完整的 PBR 材质:基础色、粗糙度、 金属度、法线、高度、AO 和自发光,分辨率随你需要。

界面布局#

Matter:节点库、节点图、2D 通道预览和 3D 预览

菜单栏File · Edit · Graph · View · Help · Plugins
图页签每个页签一份材质,+ 用于新建
工具栏选择、平移、缩放、适应窗口、添加节点、连接、取景、撤销/重做、网格
左侧可搜索的节点
中央节点图
右侧所选节点的属性
左下2D 预览,每个 PBR 通道一个页签
右下3D 预览

你可以做什么#

搭建节点图#

三个节点连接进一个基础色输出,每个节点都在预览自己

从库里把一个节点拖进来,或者从工具栏添加,再把Output → Input连接起来。 每个节点都在自己的节点体上预览自己,所以整张节点图同时也是一张接触表: 不用选中它,也能看出每一步做了什么。

节点库是分组的:

ColorColor · Gradient · Bitmap(加载 PNG/JPEG)· Uniform Color · SVG
NoiseNoise(Perlin / fractal)· Clouds(fractal sum abs)· Anisotropic Noise · Grunge Map · White Noise · Blue Noise
PatternsCheckerboard · Wood Rings · Shape · ……
Filters, adjustments and utilities色阶、混合、模糊、由高度生成法线,以及其余功能
Output每个 PBR 通道各一个

Recent把你最近用过的节点放在最上面,而这通常就是你最常要用的那些。

路由到通道#

一个Output节点就是一个 PBR 通道目标:把它的Channel设为 baseColorroughnessmetallicnormalheightaoemissive。当你关心的每一个通道都有一个 Output 节点在给它供给数据时,这份 材质就算完成了。

调整一个节点#

属性面板给每个节点提供它的基本参数、它的函数绑定(由表达式而不是 常量驱动的参数),以及它的分辨率模式:默认是Inherit,所以在节点图 层级改一次,整份材质就会以新的尺寸重新渲染。它还会报告该节点的上次求值 耗时,这是你在一张卡顿的节点图里找出昂贵步骤的办法。

Save to library能把一个节点,或者你搭好的一个子图,变成可以复用的东西。

查看结果#

正在搭建中的材质的 2D 和 3D 预览

2D 预览一次显示一个通道,带缩放和直方图。3D 预览把材质渲染在一个 mesh 上:球体、立方体、圆柱体、圆环体、平面,或者你自己的 mesh。选择一个 环境(HDRI Studio、Soft、Warm、Sky,或者 Studio / Outdoor / Sunset 预设), 设置细分和边缘,并把 UV 平铺为 1×、2× 或 4×,以检查材质是否真的能无缝 重复。

右侧面板,五个页签#

页签
Properties所选节点的参数
Parameters节点图的暴露参数:材质提供给使用者、而不是提供给搭建者的旋钮
Graph节点图层级的设置
Variants来自同一张节点图的多个材质版本
Library节点和预设库

节点检查器

第六个页签,Material Scan,只在一次扫描会话进行中时出现。

暴露参数#

一份带有暴露参数的材质,不再是一张固定的贴图,而是变成一块控制面板: 锈蚀程度、木板宽度、磨损。这正是让一张节点图能服务一整套素材的原因,也是 应该在 Matter 里搭建、而不是只画一次结果的原因。

Material Scan#

一张真实表面的照片,在这里会变成一份材质,而由于这次采集可以被重新发布, 它有属于自己的一章

节点库,用数字说话#

两百零三个节点,分在二十三个类别里。这份清单的形状说明了 Matter 是什么:

节点库:一个搜索框、最近使用的节点,然后是各个分类,每个节点都在预览自己

分类分类
filters44blur6
generators34transform6
utility22graph6
adjustments18colour5
pattern16bake5
effects9normal4
noise6analysis4

外加 flood fill(4)、channels(3)、material(3)、scatter(2)、 blending(2),以及 script、dynamics、output 和 library 各一个。

filters 比 generators 多,这正是重点:一份程序化材质大部分是处理, 噪波只是简单的部分,真正让它读起来像木头还是像生锈的钢铁的,是之后那 四十四种推来搡去的手段。

script节点是留给另外两百个都覆盖不到的情况的逃生舱口,bake节点则 是把一段昂贵的分支变成一张存储好的图片,好让节点图的其余部分保持流畅 交互。

Material Scan,以及照片被重新发布之后会发生什么#

一次在 Inkwell 里准备好的Surface Capture, 到达这里时是一张节点图,而不是一张扁平图片:这次扫描会搭建出节点, Material Scan guide会一步一步带你看它搭建了什么,指出每一步对应的 节点,并把每个输出标记为manualderived

有意思的是第二次的情况。当同一次采集从 Inkwell 重新发布时,Matter 会 注意到,它知道自己持有的版本,也知道新到达的版本,并会询问:

选项
Update the source把新照片纳入已有的节点图
Create a variant两个都保留
Ignore保持节点图不变

更新只会替换源节点。 你在下游添加的每一个节点、你更改过的每一项 设置,都不会被动。正是这个保证,让重新拍摄一个表面变得安全:你在扫描 结果之上做的工作,不是这次被替换的东西。

如果这次采集其实什么都没变,对话框也会说明这一点,而不是让你自己去比对。 如果这次采集缺少了它需要的东西,面板会指出具体是哪些字段,而不是搭出半张 节点图。

导出一份材质#

离开 Matter 的东西有三种,它们并不能互相替代:

PBR 贴图每个通道一张图片:baseColor、roughness、metallic、normal、height、AO、emissive,格式为 PNG、JPEG、HDR、TGA 或 TIFF
一个 .matter节点图其贴图,让材质保持可编辑
glTF / GLB,以及 MaterialX以其他软件期望的形式呈现的材质

只有已连接的输出才会导出;面板会提示“no connected outputs”,而不是 写出空文件,并会按数量报告成功和失败的项目。

支持读写的文件#

原生格式.matter(节点图,或带贴图的一个包)
导入.png.jpg(Bitmap 节点)、SVG(SVG 节点)、来自 Inkwell 的一次表面采集
导出PBR 贴图,格式为 PNG · JPEG · HDR · TGA · TIFF;glTF / GLB;MaterialX

向其他模块发送内容#

产出 一套 PBR 材质,以及一张扁平图片。接受 图片、像素画,以及来自 Inkwell 的表面采集。

这套材质会被 PigmentSculptEngine 直接理解:各个通道到达时已经映射到正确 的插槽,而不是七张需要你自己重新连接的散图。

与他人协作#

Matter 同步的是整份文档,经过防抖处理,而不是逐个节点同步。一张材质 节点图是个不大的对象,存储层不保留操作日志,一次完整同步诚实地反映了这 一点:以最后写入者为准。 两个人应该在不同的图页签上工作,而不是同 一个。

局限与常见问题#

  • 一张卡顿的节点图,通常只有一个慢节点。 属性面板会报告每个节点的上次 求值耗时;在把整体分辨率调低之前,先看看那里。
  • 分辨率是继承来的。 如果某个节点被固定为某个尺寸,它就不会跟随节点图 层级的改动,检查它的分辨率模式。
  • 平铺问题会显现在 3D 预览里,而不是 2D 预览。 在宣布一份材质完工之前, 把平铺系数设为 2× 或 4×。
  • Bitmap 节点不是程序化的。 它就和你给它的那张文件一样清晰,不管你用 什么分辨率渲染这张节点图。