基于自定义节点的材质。
此材质用于描述从 Blender 或 3ds Max 导出的自定义材质设置。 可以是基于物理的或非物理的,具体取决于指定的节点图。
更改“RGB.001”节点中指定的材质颜色:
var object = app.scene.getObjectByName("MyObj");
var mat = object.material;
var index = mat.nodeRGBMap['RGB.001']; // 'RGB.001' is the name of an RGB node
mat.nodeRGB[index] = new v3d.Vector4(1, 0, 0, 1); // new color in RGBA format
mat.needsUpdate = true;
更改“Value.001”节点中指定的值:
var object = app.scene.getObjectByName("Circle");
var mat = object.material;
var index = mat.nodeValueMap['Value.001'];
mat.nodeValue[index] = 0.5; // new value
mat.needsUpdate = true;
parameters - (可选)具有定义材质外观的一个或多个属性的对象。材质的任何属性(包括从 Material 继承的任何属性)都可以在这里传入。
例外是属性颜色,它可以作为十六进制字符串传入,默认为 0xffffff(白色)。 Color.set(color) 在内部被调用。
通用属性查看Material基类。
环境贴图。为了确保物理上正确的渲染,应只添加由 PMREMGenerator 预处理的环境贴图。如果 Material.envMapAutoAssign 为 true,则从相应的 CubeReflectionProbe 物体自动分配。默认为空。
通过乘以颜色来缩放环境贴图的效果。默认值为 1。
用于将视差效果应用于材质的 .envMap 的 Matrix4。该矩阵携带从世界空间到特定reflection probe空间的转换,该材质用于渲染的环境贴图。如果 Material.envMapAutoAssign 为true,则自动计算。默认是单位矩阵。
一个 .envMapParallaxMatrix 的Matrix4逆矩阵。用于将视差效果应用于材质的 .envMap。如果Material.envMapAutoAssign 为true,则自动计算。默认是单位矩阵。
定义视差体积的类型。与 CubeReflectionProbe.parallaxType 相同。如果 Material.envMapAutoAssign 为 true,则从相应的 CubeReflectionProbe 自动分配。默认值为 ReflectionProbeTypeInfinite。
包含材质节点的DirectGraph。
表示主节点图的节点组的附加图。
节点材质配置文件,可以是“blender”或“max”。
具有材质纹理的物体。它将纹理名称映射到textures。可以使用它为材质动态指定新纹理。
Vector4 值数组,其中包含材质“RGB”节点的颜色值。请注意,这些颜色由 4 维向量表示,而不是Color 类。
包含材质"Value"节点值的浮点值数组。
将"Value"节点名称映射到 .nodeValue 数组中的索引。用于定义要更新的值,请参见上面的示例列表。
用于检查该类是否代表节点材质。
不应更改此设置,因为它在内部用于优化。
通用方法查看 Material 基类。
根据指定的 .nodeGraph 生成着色器并更新其他材质参数。
将 GLTF node graph转换为材质的 .nodeGraph 属性使用的格式。
使用以下拼图来管理材质:
assign material — 将材质指定给物体。
replace texture — 替换材质的纹理。
关于如何获取此模块的源代码,请查看 本页。