饶君 魏悦
(江西省自然资源档案馆(江西省地理空间数据交换中心) 江西南昌 330025)
地貌(地形)晕渲(山体阴影)在地图制图中应用非常普遍,往往作为各类地形图、景观图、自然地理图以及政区、旅游等地图的背景,以增加高程信息,让地图表现更直观,从而增强地图的可读性。
早期,晕渲地图一般由制图学家手工绘制而成,虽然制作周期比较长,但是艺术及综合效果非常好。随着计算机技术的发展,现代地貌晕渲一般利用DEM 由计算机自动完成,几乎不需要人工干预就能达到很好的质量水平,新的算法也在不断融入,如Leland Brown 将纹理晕渲方法引入地貌晕渲生产软件。
地貌分层设色是基于高程属性,用不同色调的颜色对应不同的高程来表示地形起伏。该方法历史悠久,受制图学家青睐已有150 多年的历史,上世纪中期,其角色和设计方法受到制图学界重新审视,主要原因就是单一的高程设色不能精确反映当地的气侯和植被信息。2009 年,出现了交叉混合(Crossblended)分层设色。
一般情况下,地貌分层设色往往会叠加晕渲以增加高程信息,之前有学者使用Photoshop 将分层设色以正片叠底方式叠加到灰度晕渲生成彩色晕渲效果[4],也有学者采用HSV 色彩模型绘制彩色晕渲图,还有专门的软件用来生成彩色晕渲图[5]。自上世纪80 年代以来,国内外相关机构和制图专家一直在研究探索制作3D 地形图(鸟瞰图)。
为了同时表示出高程起伏细节与生动的色彩,借助Photoshop 图层混合模式和色阶调整功能,本文提出一种迭代自适应方法将灰度晕渲与高程分层设色(或其它类型的地图图层)叠加来生产彩色晕渲。
混合模式是Photoshop 的一个菜单,出现在软件的多个地方,一是使用PS 画笔工具时,其选项工具栏里有混合模式列表,它会决定您所使用的画笔与其所在的图层现有的像素如何交互(混合)。二是出现图层面板上方,主要影响某个图层与其底下图层的混合模式。还有在软件其他地方,如填充、滤镜等操作,这里我们主要关注图层的混合模式。
展开Photoshop 图层混合下拉列表我们可以看到Photoshop 提供了数十种混合模式,每一种的算法不一样,但大体可分为六大类,软件中用分隔线隔开。主要说明如下(表1):
表1 Photoshop 图层混合模式功能分类及实现效果说明
如下是应用不同类型的混合模式的效果如图1。
图1 不同的混合模式效果对比
先将晕渲图层的混合模式设置为“线性加深”,在该模式下,结果会根据晕渲图层的灰度进行线性加深,颜色越深,变暗程度越大,如果晕渲图为白色的话,那么混合后底图颜色不会变化如图2。
图2 “线性加深”混合叠加
如果想让有阴影的山区变暗,但是不想让平地变暗,如上图中的蓝色部分,可以通过调整黑白晕渲图层的灰度,使该层的亮色(光照)区域变为纯白色,这样就不会对下边的分层设色图层有加深效果,由色阶调整工具达到此目标。具体步骤如下:
1)在图层面板中选中晕渲图层;
2)在主菜单中,选择“图层——新建调整图层——色阶…”,命名为“阴影色阶”,在属性面板中,将直方图下方最右侧的滑块调整至直方图顶点正下方的位置如图3。
图3 晕渲图层色阶调整(亮区变白)
该操作将晕渲图层的平地(灰度偏亮的区域)变成白色,这样该区域在与下面图层混合时,不会有变暗效果。
3)将光标放在阴影色阶调整图层与晕渲图层的中间位置,然后按住Alt 键(Windows),当光标出现向下的箭头形状时,单击,使该调整图层仅作用于其下方的第一个图层(黑白晕渲图层)。
经过上述应用“线性加深”混合叠加,阴影区有了较好的起伏效果,同时经过给晕渲图层运用色调调整效果,使得光照区域没有变暗,但发现有些平坦地区的高程起伏细节信息丢失了,如下图左上角的河谷地区,右图的丘陵地带中的平地,如图4 所示。
图4 平原区域细节损失部分
为了反映上述光照区域的起伏细节信息,可以做一个与阴影区域相反的混合模式——滤色(英文称为Screen)。在该混合模式下,晕渲图层中的黑色部分不会对下边图层色调有影响,其他色调将对下方图层有一个“变亮”的效果,色调越浅,混合后变亮效果越明显。
首先,对晕渲图层做一份拷贝,然后用色阶功能将晕渲图层中的暗色(阴影)部分都变黑,保留亮色(光照)部分的纹理,再应用“滤色”模式,具体步骤如下:
1)在Photoshop 图层面板中,按住键盘的Alt键,然后点击并拖动晕渲图层到最上面,生成拷贝图层,双击图层名称,将名称改为“高亮区”。将下面的晕渲图层改为“阴影区”;
2)隐藏阴影区图层和阴影色阶图层;将高亮区图层的混合模式设置为“滤色”;
3)将高亮区图层的混合模式设置为正常模式,然后在主菜单中,选择“图层——新建调整图层——色阶…”,命名为“高亮色阶”。将直方图下方最左边的滑块向右滑至直方向最高点的正下方(也可以记下前面对应的数值),如图5 所示。
图5 晕渲图层色阶调整(暗区变黑)
这样晕渲图层中只有高亮区才有细节纹理信息,暗色区域全变为黑色。
4)将光标移到“高亮色阶”靠近“高亮区”图层位置,然后按住Alt 键,当光标变为向下箭头图标时,单击,让“高亮色阶”图层只影响下面的高亮区图层。然后将高亮区图层混合模式设置为“滤色”。
这个结果对晕渲图层的高光区(平地)实现了较好的效果。最后,将阴影区和阴影色阶图层显示,完成两者的叠加。
如果我们将高亮色阶和高亮区图层切换隐藏和显示的状态,可以看到加了高亮区的混合之后,平地的细节信息就显示出来了如图6。
图6 “滤色”混合叠加增强了平原区的细节
这样就基本完成了地形晕渲与分层设色图层比较理想的混合叠加。在此基础上,如果还需要作进一步的调整,可以直接调整两个色阶调色图层的直方图,如让高亮区多一些或阴影区多一些,也可以调整两个晕渲图层的透明度。
通过对地形晕渲图层做了两个拷贝,其中一个混合模式设置为“线性加深”,用于给分层设色图层叠加阴影效果,另一个混合模式设置为“滤色”,用于增加高亮区(平地)的地形细节,分别给每个晕渲图层都添加了色阶调整图层,调整设置为“线性加深”的晕渲图层的色阶以使其只影响阴影部分,调整设置为“滤色”模式的晕渲图层的色阶确保其只影响高亮部分。通过这种设置,让平地地形区域的颜色保持或接近原来的颜色,然后在山地的阴影区或向阳区适当增加阴影和光照,最终达到一个较好的效果。
本文提出的方法也适用于晕渲与其他类型的栅格图层(如影像/地表覆盖/政区等)进行叠加的情况。