材质管理

使用说明

材质管理功能可用于查看、修改、编辑、导出模型数据的材质。

功能入口

  • 三维地理设计选项卡->模型操作组->材质下拉菜单->材质管理

操作步骤

查看和编辑模型材质

  1. 打开包含目标模型数据集的数据源,并将模型数据集添加到球面场景中。
  2. 单击三维地理设计选项卡中模型操作组中材质下拉按钮中的材质管理按钮或直接单击三维地理设计选项卡中模型操作组中材质按钮,打开“材质管理”对话框。
  3. 源数据:单击“模型图层”右侧的下拉箭头,选择模型对象所在的图层。
  4. 材质列表:通过材质列表可以查看对象的所有材质,并过工具栏可以进行新建、导入、导出和删除材质操作。
    • 列表区域显示了当前模型对象的所有材质。
    • 添加:工具栏添加按钮可用于新建材质。单击添加按钮后,在弹出的“新建材质”对话框中创建材质名称并选择材质类型,单击确定即可完成新建。材质名称作为材质的唯一标识,不能重名。所以当新建材质名称要与已有材质名称一样时,必须保证材质中的纹理和颜色与其一致。
    • 导入:工具栏中导入按钮可用于导入带材质信息的XML或JSON文件。在材质管理对话框关闭后,仅赋予给模型对象的材质会被保存。
    • 导出:工具栏中导出按钮可用于导出选中带材质信息和纹理的所有材质文件,目前仅支持JSON格式。
    • 删除:工具栏中删除按钮可用于删除选中材质。
    • 将材质赋给选中对象:工具栏中将材质赋给选中对象按钮可用于将选中的材质批量赋予给场景中被选中的模型对象。需要注意:使用该功能时,需要在打开对话框前就在场景中选中目标模型对象。
  5. 材质编辑:材质列表右侧会显示选中材质的名称及具体参数,可通过具体参数值来调整材质,目前支持普通材质编辑和PBR材质编辑。

普通材质编辑

在材质列表中选中某一普通材质后,材质管理对话框右侧会显示编辑普通材质的相关参数。设置如下参数并单击应用,即可实现编辑后的材质应用于模型对象。

  1. 着色:
    • 材质颜色:通过下拉的颜色面板设置材质颜色。
    • 透明度:通过直接输入数值或者单击向右箭头,滑动弹出的滑块来调整透明度,数值范围为0至100。0表示图层完全不透明,随着数值的增大图层会变得越来越透明;当透明度的数值设为100时,图层完全透明。
  2. 纹理编辑:通过添加、替换、删除以及设置按钮编辑纹理贴图。
    • 添加:用于创建新的纹理贴图。单击添加按钮后,在弹出的“浏览文件夹”对话框选择指定图片文件,然后单击打开即可完成添加。
    • 替换:用于替换已有纹理的图片文件。单击替换按钮后,在弹出的“打开”对话框选择图片文件替换选中的纹理。
    • 删除:用于删除选中的纹理。
    • 设置:用于实现纹理贴图的偏移、旋转、缩放及导出。单击设置按钮,在弹出的纹理编辑器面板中设置贴图的纹理坐标偏移、缩放和旋转参数。
      • 替换:支持替换已有纹理的图片文件。单击替换按钮后,在弹出的“浏览文件夹”对话框选择指定图片文件,然后单击打开即可。
      • 删除:支持删除当前纹理图片文件。
      • 导出:支持将纹理导出为png格式到指定路径下。
      • 支持设置纹理XY坐标偏移、缩放和旋转。

PBR材质编辑

基于物理的渲染(Physically Based Rendering, PBR)材质使用基于物理的参数(粗糙度、金属度等)来描述材质的光学属性,能够实现更加真实的材质和表面细节。设置如下参数并单击应用,即可实现编辑后的材质应用于模型对象。

基色(BaseColor)

基色是物体本身的外观颜色,不包含任何光照效果,例如阴影、高光等。通过直接指定外观颜色或添加表征基色的纹理贴图可以来设置对象基色。具体参数如下:

  1. 纹理设置:用于设置表征物体表面颜色的纹理贴图文件。通过单击设置按钮,在弹出的“纹理设置”对话框中可以设置纹理坐标的偏移、旋转和缩放等参数。
  2. 颜色设置:用于设置对象表面颜色。通过单击下拉菜单,在弹出的颜色表可以指定颜色。
  3. 平移运动:实现基色纹理进行平移运动。平移运动支持设置沿U和V方向平移运动的速度,范围为纹理坐标单位/秒。
    • 周期:设置单次平移所用时间,单位为秒。
    • U:设置基色纹理沿X轴的平移次数,正值代表沿X轴正半轴以指定次数在周期内平移;负值代表沿X轴负半轴按指定速度运动。
    • V:设置基色纹理沿Y轴的平移次数,正值代表沿Y轴正半轴以指定速度运动;负值代表沿Y轴负半轴按指定速度运动。
  4. 缩放运动:实现基色纹理的缩放运动。缩放运动支持设置沿U和V方向者缩放变化的速度,范围为纹理坐标单位/秒。
    • 周期:单次缩放所用时间,单位为秒。
    • U:纹理沿着X轴的缩放次数(设置为正值,逆着X轴压缩;设置为负值,沿着X轴拉伸)。
    • V:纹理沿着Y轴的缩放速度(设置为正值,逆着Y轴压缩;设置为负值,沿着Y轴拉伸)。
      图:“基色”材质示例

金属粗糙(MetallicRoughness)

金属/粗糙度(金属性模式)是PBR材质常用工作流,通过金属度和粗糙度两个参数可以控制物体表面的反射率和光响应强度。

未使用金属度粗糙度纹理时,金属度粗糙度的效果,仅由金属度系数与粗糙度系数决定。 使用金属度粗糙度纹理时,金属度粗糙度的效果,由纹理与系数相乘的结果决定。

图:金属度效果随金属度值变化示例(粗糙度为0时,金属度效果的变化,从左向右,金属度依次为0、0.2、0.4、0.6、0.8、1)
图:粗糙度效果随粗糙度值变化示例(金属度为0时,粗糙度效果的变化,从左向右,粗糙度依次为0、0.2、0.4、0.6、0.8、1)
图:变压器金属效果
  1. 纹理设置:使用纹理贴图来控制金属度和粗糙度在材质表面上的变化。其中,纹理中的R通道,用于控制金属度;G通道,用于控制粗糙度。使用纹理贴图时,需要将金属度,粗糙度的系数设置为1。
  2. 金属度系数:控制材质表面“像金属”的程度,取值范围为0~1,取值越大材质金属性级别越高。表面金属性越高,表面颜色受环境反射驱动越大,材质本身外观颜色越模糊。表面金属性越低,受反射环境影响越小,材质本身外观颜色越明显。
  3. 粗糙度系数:控制材质表面的粗糙程度,取值范围为0~1,取值越大材质粗糙程度越大。材质的粗糙度会影响光线的反射程度:表面越粗糙,微表面细节越高,对象环境反射越模糊;表面越光滑,反射率越强,越能清晰地反射对象环境。

自发光(Emission)

在场景光照比较暗的时候,通过自发光纹理可以使对象的某个部位看起来从内部照亮(例如建筑上的窗户),常用于夜景效果的制作。

未使用自发光纹理时,自发光的效果,仅由自发光颜色值决定。使用自发光纹理时,自发光的效果,由自发光纹理与颜色值相乘的结果决定。

图:自发光纹理效果
  1. 纹理设置:自发光贴图纹理文件。
  2. 颜色设置:控制材质表面发光的颜色和强度。
  3. 平移运动
    • 周期:单次平移所用时间。
    • U:纹理沿着X轴的运动速度(设置为正值,逆着X轴运动;设置为负值,沿着X轴运动)。
    • V:纹理沿着Y轴的运动速度(设置为正值,逆着Y轴运动;设置为负值,沿着Y轴运动)。
  4. 缩放运动
    • 周期:单次缩放所用时间。
    • U:纹理沿着X轴的缩放速度(设置为正值,逆着X轴压缩;设置为负值,沿着X轴拉伸)。
    • V:纹理沿着Y轴的缩放速度(设置为正值,逆着Y轴压缩;设置为负值,沿着Y轴拉伸)。

法线(Normal)

法线贴图是一种特殊的纹理,可见的颜色通常具有蓝色色调,可让您将表面细节(如凹凸、凹槽和划痕)添加到模型,增加模型的立体感。

图:法线贴图效果对比(左图无法线贴图,右图有法线贴图)
  1. 纹理设置:法线贴图纹理文件。
  2. 强度因子:法线贴图纹理的影响程度。

遮挡(Occlusion)

环境光遮蔽(Ambient Occlusion)纹理,外观上是一张灰度图,白色表示应接受完全间接光照的区域,以黑色表示没有间接光照。模拟缝隙中出现的自阴影,用于增加模型上的明暗细节。

图:遮挡贴图效果
  1. 纹理设置:遮挡贴图纹理文件。
  2. 强度因子:遮挡贴图纹理的影响程度。

掩膜

目前仅在Unreal Engine美化精细模型工作流,制作夜景自发光的时候使用,具体方式参考SuperMap Hi-Fi 3D SDK for Unreal帮助文档,精细模型数据美化流程专题。并且只有在Unreal Engine中才能看到掩膜纹理的效果。

图:PBR使用多个纹理范例
图:整体材质效果
  1. 纹理设置:遮挡贴图纹理文件。

高级设置

  1. Alpha渲染模式:此参数允许您选择对象是否使用透明度,如果是,使用哪种类型的混合模式。
    图:镂空效果
    • 不透明:此项为默认设置,适用于没有透明区域的普通固体对象。
    • 镂空/遮罩:在这种模式下,没有半透明区域,纹理为全透明或全不透明。不需要制作复杂的模型,通过带有透明度的基色纹理,就可以制作复杂的镂空效果。
    • 透明:根据材质的纹理或者材质颜色中的Alpha值和背景进行混合渲染。Alpha值越大,混合后背景越不清晰,前景越清晰,反之亦然。适用于渲染逼真的透明材质,如透明塑料或玻璃。
  2. Alpha过滤阈值设置:在镂空渲染模式下,低于该透明度的区域,显示为全不透明;高于该透明度的区域,显示为全透明。
  3. 双面:是否开启双面渲染,不开启表示使用单面渲染。 单面渲染是指只渲染模型表面的一侧,而不渲染背面。这意味着只有面向摄像机的模型表面才会受到光照和材质的影响,而背向摄像机的模型表面则不会被渲染出来。这种渲染方式适用于大多数情况,特别是当模型的背面是不可见或没有重要细节时。单面渲染可以提高渲染性能,减少不必要的计算开销。 双面渲染会渲染模型表面的两侧,即无论模型面向何方,都会被渲染出来。双面渲染会增加渲染开销。
提示:

如果需要在SuperMap iClient3D中加载使用导出的JSON材质,建议将材质中引用的纹理贴图的尺寸是2n,否则可能无法使用。