MeshNodeMaterial - Verge3D 用户手册 - Soft8Soft
Description: 了解如何在使用 Verge3D 制作的交互式 3D 应用程序中使用 MeshNodeMaterial

Material →

# MeshNodeMaterial

基于自定义节点的材质。
此材质用于描述从 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;`

## 构造函数

### MeshNodeMaterial(parameters : Object)

parameters - （可选）具有定义材质外观的一个或多个属性的对象。材质的任何属性（包括从 Material 继承的任何属性）都可以在这里传入。
例外是属性颜色，它可以作为十六进制字符串传入，默认为 0xffffff（白色）。 Color.set(color) 在内部被调用。

## 属性

通用属性查看Material基类。

### # .envMap : Texture

环境贴图。为了确保物理上正确的渲染，应只添加由 PMREMGenerator 预处理的环境贴图。如果 Material.envMapAutoAssign 为 true，则从相应的 CubeReflectionProbe 物体自动分配。默认为空。

### # .envMapIntensity : Float

通过乘以颜色来缩放环境贴图的效果。默认值为 1。

### # .envMapParallaxMatrix : Matrix4

用于将视差效果应用于材质的 .envMap 的 Matrix4。该矩阵携带从世界空间到特定reflection probe空间的转换，该材质用于渲染的环境贴图。如果 Material.envMapAutoAssign 为true，则自动计算。默认是单位矩阵。

### # .envMapParallaxMatrixInv : Matrix4

一个 .envMapParallaxMatrix 的Matrix4逆矩阵。用于将视差效果应用于材质的 .envMap。如果Material.envMapAutoAssign 为true，则自动计算。默认是单位矩阵。

### # .envMapParallaxType : Constant

定义视差体积的类型。与 CubeReflectionProbe.parallaxType 相同。如果 Material.envMapAutoAssign 为 true，则从相应的 CubeReflectionProbe 自动分配。默认值为 ReflectionProbeTypeInfinite。

### # .nodeGraph : DiGraph

包含材质节点的DirectGraph。

### # .additionalNodeGraphs : Object

表示主节点图的节点组的附​​加图。

### # .profile : String

节点材质配置文件，可以是“blender”或“max”。

### # .nodeTextures : Object

具有材质纹理的物体。它将纹理名称映射到textures。可以使用它为材质动态指定新纹理。

### # .nodeRGB : Array

Vector4 值数组，其中包含材质“RGB”节点的颜色值。请注意，这些颜色由 4 维向量表示，而不是Color 类。

### # .nodeRGBMap : Array

将“RGB”节点名称映射到 .nodeRGB 数组中的索引。用于定义要更新的颜色值，请参见上面的示例列表。

### # .nodeValue : Array

包含材质"Value"节点值的浮点值数组。

### # .nodeValueMap : Array

将"Value"节点名称映射到 .nodeValue 数组中的索引。用于定义要更新的值，请参见上面的示例列表。

### # .isMeshNodeMaterial : Boolean

用于检查该类是否代表节点材质。
不应更改此设置，因为它在内部用于优化。

## 方法

通用方法查看 Material 基类。

### # .updateNodeGraph() → null

根据指定的 .nodeGraph 生成着色器并更新其他材质参数。

## 静态方法

### # .nodeGraphFromGLTF(gltfNodeGraph : Object) → DiGraph

将 GLTF node graph转换为材质的 .nodeGraph 属性使用的格式。

## 拼图

使用以下拼图来管理材质：
assign material — 将材质指定给物体。
replace texture — 替换材质的纹理。

## 源代码

关于如何获取此模块的源代码，请查看 本页。