基于多特征草图的交互式地形编辑系统设计与实现

2021-11-05 08:03杨哲王辉柏
电子技术与软件工程 2021年17期
关键词:草图漫游绘制

杨哲 王辉柏

(北方工业大学信息学院 北京市 100144)

1 引言

随着计算机硬件设备性能的提升,图像处理、图形学、人机交互等技术得到了快速发展。在交互式地形编辑方面,各应用领域更强调编辑结果的真实感以及用户的交互体验感。本文在对目前的交互式地形编辑方法进行深入研究的基础上,发现目前的方法,普遍存在编辑过程复杂、交互方式单一、生成结果存在人工编辑痕迹等问题。

2 相关工作

目前的交互式地形编辑技术分为三个方向:基于分形噪声的地形编辑[1]、基于侵蚀模拟的地形编辑[2]以及基于真实样本的地形编辑[3]。

文献[4]在分形布朗运动的原理基础上,介绍了多种地形表面的创建方法。文献[5]改进了传统分形噪声的地形编辑方法,提升了地形编辑的效率。文献[6]基于真实地形图,先模拟生成地形骨架,再进一步得到地形表面,编辑得到具有随机全局统计特征的真实地形。文献[7]组合了各种影响因子,控制了分形噪声产生的随机过程,可以编辑得到不同的地形特征。文献[8]基于地形等高线数据,生成离散三维点,进一步构建三维地形。文献[9]以真实地形图像集为基础,进行大规模地形场景的生成。文献[10]采用对用户草图进行细节扩充的方式,进行地形编辑。在研究了目前方法存在的优缺点之后,本文设计了基于用户多特征草图的交互式地形编辑系统。

3 基于多特征草图的交互式地形编辑系统设计与实现

为了使用户能够自由地进行地形编辑,得到具有真实感的地形,本文主要研究并设计出一套基于多特征草图的交互式地形编辑系统。借助该系统,用户可以自由地绘制山脊线、山谷线和山顶点特征,编辑地形特征草图;再根据草图实时生成地形高程图;最后进行三维可视化,得到地形场景,实现漫游展示。

3.1 系统模块划分

如图1所示,本文将系统划分为以下四个模块:地形特征提取模块、地形高程图生成模块、地形可视化模块和人机交互模块。

图1:基于多特征草图的交互式地形编辑系统示意图

3.2 系统模块实现

3.2.1 地形特征提取模块

该模块采用不同颜色及绘制方式区分地形特征。具体为:红色代表山脊线,标记方式为线条;蓝色代表山谷线,标记方式为线条;绿色代表山顶点,标记方式为点。该模块包括特征增强和特征提取两个子模块。

3.2.1.1 特征增强

该子模块主要为了解决从第三方获取的地形高程图特征不明显的问题,用于突出其显著特征。同时根据灰度直方图设置阈值,对不同的输入数据进行对应程度的增强,实现特征增强。

3.2.1.2 特征提取

该子模块主要基于断面识别法实现,提取山脊线、山谷线和山顶点特征,制作地形特征图数据集,用于后续网络的训练。

3.2.2 地形高程图生成模块

地形高程图生成基于训练好的生成器模型,可以实时对用户绘制的地形特征草图进行预测,生成地形高程图。该模块划分为特征捕获和高程图生成两个模块。

3.2.2.1 特征捕获

这里的特征指地形高程图中的全局结构性特征。由于常规网络结构只能够捕获地形的局部结构性特征,因此,本文在常规的条件式生成对抗网络中,分别在生成器和判别器中添加自注意力模块,能够较好地捕获地形的全局空间特征,保证生成结果地形特征的完整性,提升了生成器的性能,生成的结果更具有真实感。

3.2.2.2 高程图生成

训练好的生成器模型在实际应用中,可以采用Keras 库中的LoadModel()加载,并对用户绘制的特征草图进行一系列格式转换,得到符合模型输入的数据格式,再调用Predict(),预测生成地形高程图。最后将生成结果转换为.PNG 的格式,用户可以选择以不同分辨率进行保存。

3.2.3 地形可视化模块

地形可视化模块,是为了用户编辑得到地形高程图之后,能够进一步直观地观察绘制结果而进行设置的。该模块主要包含两个子模块,包括网格构建和纹理贴图。

3.2.3.1 网格构建

网格构建主要考虑不同用户的设备性能。常规的地形网格是直接采用用户绘制的地形高程图构建地形网格,并根据高程值进行不同纹理的自适应贴图,完成地形可视化。但该模式建立在用户设备性能较好,且不影响漫游交互体验的前提下。而层次细节模式则是根据用户绘制的地形高程图以及结点和视点的距离完成地形网格的动态构建,因此可以在性能较低的设备上,保证用户的交互体验。

3.2.3.2 纹理贴图

对于地形网格,可以根据地形高程值采用不同纹理进行自适应贴图,从而增强三维可视化的真实感,提升用户的交互体验。由于地形网格场景较大,在采用多重纹理贴图的过程中也会由于重复平铺产生重复感,显得不够自然。因此需要采用随机平移和镜像翻转等方式,消除平铺过程的重复感。

3.2.4 人机交互模块

人机交互模块直接决定了用户的交互体验。该模块划分为两个子模块:交互界面模块和交互功能模块。交互界面包含UI 界面搭建、功能布局和交互提示等功能。交互功能包含地形特征选择、漫游展示、绘制结果保存等功能。

3.2.4.1 交互界面

软件整体基于PyQT 插件进行搭建,分别设置了按钮、画布、下拉框等控件,构建完整的系统交互视图界面。界面功能设置简洁,用户可以较快地掌握系统的使用。整体布局采用水平分布,分别为用户草图绘制区、地形生成结果展示区和功能选择区。

其中漫游展示功能会启动漫游窗口,该窗口界面采用Unity3D自带的UGUI 搭建,为用户提供交互提示。通过详细的功能介绍引导用户进行漫游操作。

3.2.4.2 交互功能

交互功能通过画笔、按钮等方式实现交互式编辑。用户可以通过点击地形特征下拉框选择地形特征画笔。选择之后在草图绘制区进行绘制,得到地形特征图。在地形生成结果展示区实时展示由用户绘制的地形草图生成的地形高程图,为用户编辑提供反馈。用户还可以点击漫游展示按钮实时观察由当前地形高程图可视化的三维地形结果。在得到满意的地形高程图之后,用户点击保存按钮选择相应的文件夹保存绘制结果,同时可以选择保存图像的分辨率。

4 实验结果与分析

为了验证基于多特征草图的交互式地形编辑系统,本文通过实验验证系统的可行性和有效性。实验的硬件环境包括:处理器AMD Ryzen 7 4800H,内存16GB,显卡NVIDIA GeForce RTX2060;软件环境包括:Windows10 操作系统,开发语言Python、C#, 开发工具为PyCharm2019、Visual Studio 2019 和Unity3D 2019。

系统运行界面如图2所示。其中系统的左侧的黑色区域为用户草图绘制区,右侧的黑色区域为地形生成结果展示区。最右边的侧边栏有5 个功能,分别为清空画板,保存作品,漫游展示,地形特征选择,地形图大小选择。这里选取了山脊线、山谷线和山顶点三个特征进行绘制。

图2:绘制地形高程图

绘制完成之后用户可以选择保存当前的绘制结果,也可点击漫游展示按钮,进行交互漫游操作,观察三维地形可视化效果,如图3所示。

图3:漫游展示结果

5 本章小结

为了解决目前地形编辑方法普遍存在编辑过程复杂、交互方式单一、生成结果存在人工编辑痕迹等问题,本文设计并实现了基于多特征草图的交互式地形编辑系统。从用户交互式编辑需求的角度出发,设计了地形特征提取、地形高程图生成、地形可视化和人机交互四个模块,分别阐释了系统模块功能。最后给出了用户使用本系统进行交互式编辑过程中的运行截图。经验证,该系统运行稳定,易上手且用户体验良好,能够创建出符合用户个人意愿的地形高程图,满足用户需求。今后可以在该系统上继续拓展功能,使用户绘制地形特征草图时能够进行更细节的调节。

猜你喜欢
草图漫游绘制
Art on coffee cups
放学后
NASA漫游记
画好草图,寻找球心
草图
在转变中绘制新蓝图
基于Inventor概念草图仿真在机械原理中的应用
VBA在宗地图绘制中的应用
边走边看:漫游海底 梦想成真