作者:nannan
目录
前言
SuperMap iDesktopX 11i是一款功能强大的地理信息系统软件,提供了丰富的功能和工具来处理和可视化地理数据。其中,对模型数据的材质操作是一项重要功能,它可以让用户对模型数据进行材质的设置和调整,以达到更好的可视化效果。本篇博客将介绍SuperMap iDesktopX 11i中的模型数据材质操作的相关功能,并提供一些实用的示例。
一、材质介绍
1.1 常规材质
常规材质在IDesktopX中包含两个属性,材质颜色和透明度。默认透明度的数值为 0,表示图层完全不透明,随着数值的增大图层会变得越来越透明;当透明度的数值设为 100 时,图层完全透明。透明度数值的范围为 0 至 100 。
iDesktopX支持将*.png、*.jpg、*.bmp、*.gif、*.tif、*.jpeg格式的图片导入,对常规材质进行纹理编辑。
1.2 PBR材质
PBR全称Physically Based Rendering,是基于物理的渲染,能够更加真实的反应模型的质感。
1.2.1 基色
基色是物体本身的外观颜色,不包含任何光照,比如阴影,高光等效果。可以直接指定外观颜色或添加表征基色的纹理贴图来设置物体基色。
- 纹理设置:表征物体表面颜色的纹理贴图文件。
- 颜色设置:指定对象表面颜色。
- 平移运动
- 周期:单次平移所用时间。
- U:纹理沿着X轴的运动速度(设置为正值,逆着X轴运动;设置为负值,沿着X轴运动)。
- V:纹理沿着Y轴的运动速度(设置为正值,逆着Y轴运动;设置为负值,沿着Y轴运动)。
- 缩放运动
- 周期:单次缩放所用时间。
- U:纹理沿着X轴的缩放速度(设置为正值,逆着X轴压缩;设置为负值,沿着X轴拉伸)。
- V:纹理沿着Y轴的缩放速度(设置为正值,逆着Y轴压缩;设置为负值,沿着Y轴拉伸)。
![]() |
1.2.2 金属粗糙
金属/粗糙度(金属性模式)是PBR材质常用工作流,通过金属度和粗糙度两个参数来控制物体表面的反射率和光响应强度。
- 纹理设置:使用纹理贴图来控制金属度和粗糙度在材质表面上的变化。其中,纹理中的R通道,用于控制金属度;G通道,用于控制粗糙度。使用纹理贴图时,需要将金属度,粗糙度的系数设置为1。
- 金属性:控制材质表面“像金属”的程度,取值范围为0~1,取值越大材质金属性级别越高。表面金属性越高,表面颜色受环境反射驱动越大,材质本身外观颜色越模糊。表面金属性越低,受反射环境影响越小,材质本身外观颜色越明显。
- 粗糙度:控制材质表面的粗糙程度,取值范围为0~1,取值越大材质粗糙程度越大。材质的粗糙度会影响光线的反射程度:表面越粗糙,微表面细节越高,对象环境反射越模糊;表面越光滑,反射率越强,越能清晰地反射对象环境。
未使用金属度粗糙度纹理时,金属度粗糙度的效果,仅由金属度系数与粗糙度系数决定。 使用金属度粗糙度纹理时,金属度粗糙度的效果,由纹理与系数相乘的结果决定。



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

未使用自发光纹理时,自发光的效果,仅由自发光颜色值决定。使用自发光纹理时,自发光的效果,由自发光纹理与颜色值相乘的结果决定。
1.2.4 法线
法线贴图是一种特殊的纹理,可见的颜色通常具有蓝色色调,可让您将表面细节(如凹凸、凹槽和划痕)添加到模型,增加模型的立体感。

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

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


图:整体材质效果
1.2.7 高级设置
这里需要准备具有镂空效果的半透明PNG贴图,才可进行如下参数设置,否则看不到效果。
- Alpha渲染模式:此参数允许您选择对象是否使用透明度,如果是,使用哪种类型的混合模式。
图:镂空效果 - 不透明:此项为默认设置,适用于没有透明区域的普通固体对象。
- 镂空/遮罩:在这种模式下,没有半透明区域,纹理为全透明或全不透明。不需要制作复杂的模型,通过带有透明度的基色纹理,就可以制作复杂的镂空效果。
- 透明:根据材质的纹理或者材质颜色中的Alpha值和背景进行混合渲染。Alpha值越大,混合后背景越不清晰,前景越清晰,反之亦然。适用于渲染逼真的透明材质,如透明塑料或玻璃。
- Alpha过滤阈值设置:在镂空渲染模式下,低于该透明度的区域,显示为全不透明;高于该透明度的区域,显示为全透明。
- 双面:是否开启双面渲染,不开启表示使用单面渲染。 单面渲染是指只渲染模型表面的一侧,而不渲染背面。这意味着只有面向摄像机的模型表面才会受到光照和材质的影响,而背向摄像机的模型表面则不会被渲染出来。这种渲染方式适用于大多数情况,特别是当模型的背面是不可见或没有重要细节时。单面渲染可以提高渲染性能,减少不必要的计算开销。 双面渲染会渲染模型表面的两侧,即无论模型面向何方,都会被渲染出来。双面渲染会增加渲染开销。
二、材质操作
2.1 制作材质
iDesktopX桌面的材质管理器,实现了材质的制作、材质的导入与导出,也可以将已有的 PBR 材质,直接替换原始材质,应用于模型。
点击【三维地理设计】-【材质】按钮,即可弹出材质管理器界面。本地材质库中,给出了一些常见的材质类型,用户也可以新建 PBR 材质。 下图是示范的制作镜面反射材质的操作,如想了解镜面反射可以参考SuperMap iClient3D for WebGL实现白模镜面反射效果-CSDN博客。
2.2 导出材质
导出材质为.json 格式的材质,支持再导入 SuperMap iDesktopX,以便在不同项目,不同用户之间复用材质。还支持在 SuperMap iClient3D for WebgL中使用,具体请见SuperMap iClient3D for WebGL实现白模镜面反射效果-CSDN博客。
2.3 导入材质
导入材质格式为(*.xml、*.json)文件,其中*.json比较常用,因为桌面导出材质和游戏引擎SuperMap插件导出材质都是json文件。在材质库里鼠标右键,点击【导入材质】,选择本地的材质文件(本篇选择2.2节导出的材质),进行导入。
可以看到在材质库里会新增一个材质文件。
2.4 修改材质
在iDesktopX桌面里既可以对单个对象修改材质,也可以对整个图层的模型修改材质。既可以修改贴图也可以修改模型材质颜色,下面就和小编一起来操作吧。
2.4.1 将材质赋予选中对象
小编这里结合1.2.1、1.2.7节讲到的PBR材质参数来制作一个镂空效果的材质,然后将该材质赋予水立方模型。

在材质管理器的材质库文件夹中,右键新建材质,基色选择带有镂空效果的半透明的PNG图片,点击应用,可以看到下图红圈4的材质效果。
选中刚创建好的材质,右键【将材质赋予选中对象】,则会看到场景中模型材质发生了变化。
现在看场景中水立方模型是一个背景为白色的不透明材质,与镂空材质有些区别,所以我们想到使用1.2.7节讲的需要设置Alpha渲染模式和Alpha过滤阈值。
下面是小编的操作设置参数
重新选中上面刚创建好的材质,右键【将材质赋予选中对象】,则会看到场景中模型从不透明变成了镂空效果。
在上面高级设置不变的情况下,小编尝试将高级设置里的Alpha过滤阈值增大到0.9,点击应用后重新右键【将材质赋予选中对象】。会看到场景中模型的镂空材质色调变暗,更有玻璃质感一些。大家可以根据自己的需求尝试不同的参数以及配色。
2.4.2 修改材质颜色
修改材质颜色,是指批量修改模型材质颜色,支持条件设置,SQL查询语句为空,表示数据集中所有模型材质颜色修改;存在SQL,则满足条件的模型材质颜色修改。
修改材质颜色功能在iDesktopX桌面的【三维数据】-【模型工具】-【修改材质颜色】处,也可以在工具箱搜索即可找到该功能的入口。
下面小编是以不设置SQL查询语句,想对整个图层设置红色为例,参数如下:
结果如下图所示:
温馨提示:如果测试修改颜色后想恢复为原来的状态,可以将修改材质颜色参数里的颜色改为白色。
下面我们设置修改材质颜色的SQL查询语句,注意查询语句后面必须带分号,如下图所示:
结果可以看到Name字段值里包含“国家”的模型材质都赋予了红色。
2.5 材质提取
模型材质提取,将模型数据集中的材质通过图片的方式提取出来。在iDesktopX的工具箱里【三维数据】-【AT提取】-【模型材质提取】。
材质提取结果如下:
这里的材质提取在超图里主要应用场景是为提取窗户制作模型窗户自发光做准备,以达到炫酷的夜景特效。因涉及到AI提取,具体见AI提取相关博客以及SuperMap Hi-Fi 3D SDK for Unreal帮助文档里5.3.2节案例:精细模型数据美化流程。