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

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

.envMapParallaxMatrixInv : Matrix4

一个 .envMapParallaxMatrixMatrix4逆矩阵。用于将视差效果应用于材质的 .envMap。如果Material.envMapAutoAssigntrue,则自动计算。默认是单位矩阵。

.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 — 替换材质的纹理。

源代码

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