语法
- string[] getMaterial(source, mode)
参数
- source - selector指定要读取的材料。
- used - 当前所使用的材料,是形状材料和形状几何材料的组合。 在 CGA 中明确设置的形状材料属性将覆盖几何材料。
- shape - 当前形状的材料,与几何无关。
- geometry - 当前形状的几何材料。 如果几何具有多种材料,则将采用第一个。
- mode - 选择器指定要考虑的属性。
- changed - 仅包括实际设置的材料属性,即保留默认值的属性将被跳过。
- all - 所有材料属性。
返回
所选材料作为 2D 字符串数组。 每行包含两列:属性名称及其值。
描述
getMaterial 函数会将当前材料作为字符串数组返回。 这样,即可在单个函数中轻松捕获所有材料属性。 此结果可用于通过 setMaterial 操作设置材料属性。
注:
请注意,“当前材料”实际上是当前形状材料和当前形状的几何材料的组合。 将材料数组打印到控制台可以很好地检查这些材料。
相关内容
示例
设置各个属性后的材料
CGA 代码
RefExample1-->
color(0.5, 0.6, 0.7)
print(getMaterial(used, changed))
结果
(3x2)
color.b 0.7
color.g 0.6
color.r 0.5
插入资产后的材料
CGA 代码
RefExample2-->
i("/ESRI.lib/assets/Webstyles/Vegetation/Realistic/AcerPlatanoides.glb")
print(getMaterial(used, changed))
结果
(15x2)
metallic 0
opacity 1
opacitymap.cutoff 0.1000000014901161
roughness 0.800000011920929
color.b 1
color.g 1
color.r 1
emissive.b 0
emissive.g 0
emissive.r 0
name
opacitymap.mode mask
colormap /ESRI.lib/assets/Webstyles/Vegetation/Realistic/AcerPlatanoides.glb/img0
opacitymap /ESRI.lib/assets/Webstyles/Vegetation/Realistic/AcerPlatanoides.glb/img0
shader CityEnginePBRShader
在原始几何上应用几何资产的材料
已插入 Fire_Hydrant 资产(左侧)。 此几何已设置多个材料属性。 接下来,将创建一个圆柱,使用 CGA 默认材料(中间)。 最后,Fire_Hydrant 材料将应用于圆柱(右侧)。
|
形状材料与几何材料
已插入 Fire_Hydrant 资产(左侧)。 此几何已设置多个材料属性。 随后设置了一些形状材料属性以覆盖几何材料,生成一个蓝色的无纹理模型。 接下来,对形状材料的更改将重置,这将恢复资产的原始材料设置。 最后,在常量函数中捕获的完整的默认 CGA 材料将明确设置,使得所有形状材料属性设置完成,因此将覆盖几何材料。
|