计算机系统应用  2018, Vol. 27 Issue (1): 185-188   PDF    
基于静态LOD的输电线路虚拟地形渲染优化算法
黄建峰1, 宋金根1, 丁小蔚2, 龚坚刚2, 孙福昌1, 黄淮3     
1. 浙江省电力公司检修公司, 杭州 310000;
2. 浙江华云电力工程设计咨询有限公司, 杭州 310000;
3. 南京工程学院 电力学院, 南京 211167
摘要:针对输电线路三维可视化系统中大规模地形场景的渲染问题, 提出一种基于静态LOD的虚拟地形绘制优化算法. 建立输电线路廊道内地形高程数据的分块模型, 将视角移动速度纳入细节层级的评价因子中, 结合视点距离、地形复杂度等因素改进评价函数. 通过阈值判断网格内数据点高程值的方差, 选择不同的线性插值函数完成地形曲面的模拟效果. 实验结果表明所提算法有效减少了运动状态下地形三角面的绘制数, 具有更加流畅的虚拟场景帧数和良好的地形仿真效果.
关键词: 输电线路    虚拟地形    静态LOD    评价函数    插值函数    
Virtual Terrain Rendering Optimization Algorithm for Transmission Line Based on Static LOD
HUANG Jian-Feng1, SONG Jin-Gen1, DING Xiao-Wei2, GONG Jian-Gang2, SUN Fu-Chang1, HUANG Huai3     
1. State Grid Zhejiang Maintenance Company, Hangzhou 310000, China;
2. Zhejiang Huayun Electric Power Engineering Design Consulting Co. Ltd., Hangzhou 310000, China;
3. School of Electric Power Engineering, Nanjing Institute of Technology, Nanjing 211167, China
Abstract: Aiming at the problem of large scale terrain rendering in 3D visualization system of transmission line, a virtual terrain rendering algorithm based on static LOD is proposed. Firstly, the model of terrain elevation data in transmission line corridor is established. The viewing angle is moved into the evaluation factor at the detail level. And the evaluation function is improved by combining the view distance and terrain complexity. On this basis, the variance of the elevation values of the data points in the grid is determined by the threshold value. Different linear interpolation functions are used to simulate the terrain surface. The experimental results show that the proposed algorithm can effectively reduce the number of terrain triangles in motion. The virtual scene frame is more smooth and has a good effect of terrain simulation.
Key words: transmission line     virtual terrain     static LOD     evaluation function     interpolation function    

引言

随着电力系统可视化水平的不断发展, 三维仿真技术在输电线路辅助设计、运行管理和技能培训中的应用越来越广泛, 为电网运维部门提供了具体的操作对象和高效的辅助手段[1]. 然而, 作为输电线路三维可视化系统的重要组成部分, 廊道内复杂的地形结构对三维引擎提出了极大要求和挑战, 如何有效地实时渲染大规模虚拟地形场景成为输电线路仿真的主要瓶颈[2].

文献[3]采用基于图像的建模方法合成了输电线路的地形环境, 避免了大量数据的复杂建模和优化工作, 缺点是降低了三维场景的交互性和沉浸感. 文献[4]通过无人机扫描获取地形场景的数据模型, 结合区域纹理信息构建了输电线路走廊的三维地理环境, 但是庞大的数据量严重影响了建模速度.

静态LOD是一种适用于GPU处理的虚拟地形场景绘制方法. 文献[5]介绍了静态LOD算法的优缺点, 利用边界的多重细节层次来解决相邻地形块之间的裂缝问题. 文献[6]引入线性四叉树管理机制构建了地形块的调度准则, 提高了画面的流畅度和渲染效率. 本文研究了基于静态LOD的输电线路虚拟地形绘制方法, 以满足输电线路三维可视化系统的实际需求.

1 算法概述

通常情况下, 静态LOD算法采用四叉树法划分地形网格, 离线生成各地形块的不同细节层级, 根据评价函数决定渲染时采用的细节层级, 对地形块进行载入和绘制[7]. 在不影响地形场景逼真度的前提下, 有效减少了渲染的数据量和时间.

然而, 四叉树法采用正方形作为初始地形网格, 在此基础上进行递归划分, 对生成的地形块和节点数要求非常严格. 同时, 算法根据视点的位置和地形块的复杂程度建立评价函数, 忽视了视点移动速度对层次细节载入的影响.

2 算法的改进 2.1 地形数据结构

地形数据的存储是实现大规模地形算法的首要和关键. 若采用正方形作为长距离输电线路虚拟场景的初始地形, 不仅高程模型数据量庞大, 其空间分布也会不均匀, 导致生成的地形四叉树结构不平衡, 严重影响了虚拟场景的建模速度和效率[8]. 为此, 本文根据输电线路走廊的位置和范围, 进行地形数据的分块优化存储处理.

首先, 获取高程模型数据的等间距离散点三维坐标和拓扑网络结构信息, 保证地形数据的完整性. 遍历所有采集到的高程数据点, 以最小矩形包围盒为地形结构的根节点, 划分矩形区域划分成多个边长为2n+1的正方形地形块, 构建下一层次的子节点, 当区域不足形成正方形时, 以包含该区域的最小正方形进行增补, 如图1所示. 对各子节点包含的地形块进行四叉树递归分割, 构建不同细节层级的地形数据结构, 深度值取4–7之间.

图 1 地形数据分块模型

2.2 LOD评价函数

在输电线路虚拟场景中, 视角移动速度会对屏幕的渲染效果产生重要影响, 视角移动速度越快则看到的场景越模糊. 因此, 将视角移动速度纳入评价因子中, 结合视点距离、地形复杂度等因素改进评价函数f, 计算渲染时采用的地形细分程度, 公式如式(1)所示:

$f = \frac{{D\left( z \right)}}{{{C_1} \cdot {C_2} \cdot L \cdot r \cdot {\rm{v}}}}$ (1)

式中, D(z)为地形块高程值的方差; C1C2分别为视点距离和地形复杂度的控制因子; L为视点与地形块的直线距离; r为地形块边长; v为视点移动速度.

在其他控制因子保持不变的情况下, 当移动速度变快时, 评价函数变小, 表示将采用深度值较低的地形块. 若评价函数计算结果小于1, 则对当前地形层级直接进行渲染操作, 否则重新计算深度值更高的细节层级, 从而提高了大规模地形渲染的效率.

3 基于线性插值函数的地形渲染方法

对四叉树结构中各细节层级的正方形地形单元, 采集数字高程模型中各单元顶点的平面坐标和高程值, 利用数学函数完成网格内地形曲面的模拟, 适用于虚拟现实系统中的大规模地形场景建模[9]. 本文提出了一种基于线性插值函数的地形渲染方法.

3.1 插值函数

插值函数直接决定了地形建模的精度和速度, 常用的函数类型有距离加权、线性内插、样条函数、最小二乘法等[10]. 其中, 线性插值函数具有数据存储量小、拓扑结构简单、易于采集和计算的优点, 获得了较为广泛的使用. 根据插值方式的不同, 线性函数主要分为双线性多项式、双三次多项式和最邻近插值三种.

考虑到输电线路廊道内地形条件的复杂性, 采用单一的插值方式难以准确描述地理条件信息, 也影响了虚拟场景的还原度和沉浸感. 为保证地形模拟精度的同时提高建模速度, 根据网格内地形特征选择不同的插值模型, 对地形平坦区域采用计算量小的双线性多项式, 对地形崎岖区域采用模拟精度高的双三次多项式进行插值计算.

3.2 算法流程

以线性插值法为基础, 引入阈值判断规则格网中各单元格高程值的方差, 选择不同的线性函数模拟区域表面的地形起伏, 流程如图2所示.

图 2 算法流程图

步骤1. 设定阈值T.

步骤2. 选择格网单元, 计算高程值的方差D( $z$ ), 如下式所示.

$\bar z = \frac{{{z_{i,i}} + {z_{i + 1,j}} + {z_{i,j + 1}} + {z_{i + 1,j + 1}}}}{4}$ (2)
$D\left( z \right) \!=\!\!\! \sqrt {\frac{{{{\left( {{z_{i,j}} - \bar z} \right)}^2} \!+\! {{\left( {{z_{i + 1,j}} - \bar z} \right)}^2} \!+\! {{\left( {{z_{i,j + 1}} - \bar z} \right)}^2} \!+\! {{\left( {{z_{i + 1,j + 1}} - \bar z} \right)}^2}}}{4}} $ (3)

式中, $z$ i, j为正方形格网中对应第i行第j列单元顶点的高程值.

步骤3. 判断阈值T和方差D( $z$ )的大小, 若阈值大转步骤4, 否则转步骤5.

步骤4. 采用双线性多项式进行插值计算, 利用待插值点所在格网的四个顶点坐标计算多项式系数, 待插值点高程 $z$ 的表达式为:

$z = \left[ {\begin{array}{*{20}{c}}1 & x\end{array}} \right] \cdot \left[ {\begin{array}{*{20}{c}}{{a_{11}}} & {{a_{12}}}\\{{a_{21}}} & {{a_{22}}}\end{array}} \right] \cdot \left[ {\begin{array}{*{20}{c}}1\\y\end{array}} \right]$ (4)

式中, xy为待插值点的平面坐标, a11a12a21a22为双线性多项式系数.

步骤5. 采用双三次多项式进行插值计算, 多项式系数由待插值点所在格网和邻近格网的16个顶点坐标决定, 高程表达式为:

$z = \left[ {\begin{array}{*{20}{c}}1 & x & {{x^2}} & {{x^3}}\end{array}} \right] \cdot \left[ {\begin{array}{*{20}{c}}{{a_{11}}} & {{a_{12}}} & {{a_{13}}} & {{a_{14}}}\\{{a_{21}}} & {{a_{22}}} & {{a_{23}}} & {{a_{24}}}\\{{a_{31}}} & {{a_{32}}} & {{a_{33}}} & {{a_{34}}}\\{{a_{41}}} & {{a_{42}}} & {{a_{43}}} & {{a_{44}}}\end{array}} \right] \cdot \left[ {\begin{array}{*{20}{c}}1\\y\\{{y^2}}\\{{y^3}}\end{array}} \right]$ (5)

式中, $\left[ {\begin{array}{*{20}{c}} {{a_{11}}} & {{a_{12}}} & {{a_{13}}} & {{a_{14}}}\\ {{a_{21}}} & {{a_{22}}} & {{a_{23}}} & {{a_{24}}}\\ {{a_{31}}} & {{a_{32}}} & {{a_{33}}} & {{a_{34}}}\\ {{a_{41}}} & {{a_{42}}} & {{a_{43}}} & {{a_{44}}} \end{array}} \right]$ 为双三次多项式系数.

步骤6. 计算所有单元, 完成基于规则格网的地形建模.

4 实验验证与结果分析

为验证本算法在仿真大规模地形场景方面的有效性和优越性, 选取了某地区数字高程模型的5000个采样点, 划分为10*10网格, 分别采用ROAM算法、规则四叉树算法和本文算法进行地形渲染, 计算不同状态下地形块的渲染数, 对比测试结果如表1所示.

表 1 算法测试结果对比

实验结果表明: 在静止状态时, 三种算法绘制的三角面数基本相同; 然而当视点处于运动状态时, 本文算法有效减少了三角面的绘制数, 具有更加流畅的虚拟场景帧数.

针对算法中各细节层级的地形块, 分别采用双线性法、双三次法和阈值判断法模拟地形起伏, 在保证模拟精度的同时有效减少了运算时间, 如图3所示.

图 3 网格生成结果

5 结论

针对输电线路三维可视化系统中地形场景的渲染问题, 提出一种基于静态LOD的虚拟地形场景建模方法. 建立地形数据的分块优化处理结构, 将视角移动速度纳入评价函数的控制因子中, 通过函数计算结果调用细节层级. 根据正方形网格内高程点的方差分别选择不同的插值函数模拟地形起伏, 实验结果证明本文算法有效减少了运动状态下地形三角面的绘制数, 具有更加流畅的虚拟场景体验和良好的地形仿真效果.

参考文献
[1]
陈海波, 郑健, 费瑞轶, 等. 虚拟现实技术在电力系统中的典型应用. 电网与清洁能源, 2016, 32(2): 20-25.
[2]
杨成顺, 杨中亚, 黄宵宁. 基于资产类模型和空间信息模型的输电线路三维可视化平台. 电测与仪表, 2015, 52(23): 122-128. DOI:10.3969/j.issn.1001-1390.2015.23.022
[3]
孙凤杰, 刘慧娟, 陈鹤. 输电线路虚拟三维场景建模方法研究与实现. 中国电力, 2015, 48(9): 86-89, 94.
[4]
麦晓明, 陈驰, 彭向阳, 等. 输电线路走廊三维可视化技术和系统设计. 中国电力, 2015, 48(2): 98-103.
[5]
夏杰, 陈奇. 基于静态LOD的海量地形绘制中的接缝算法. 计算机工程与设计, 2010, 31(22): 4847-4850.
[6]
李钦, 戴树岭, 赵永嘉, 等. 分块LOD大规模地形实时渲染算法. 计算机辅助设计与图形学学报, 2013, 25(5): 708-713.
[7]
马彦力. 三维GIS大数据量场景快速可视化关键技术研究[硕士学位论文]. 杭州: 浙江大学, 2013.
[8]
刘扬, 宫阿都, 李京. 基于数据分层分块的海量三维地形四叉树简化模型. 测绘学报, 2010, 39(4): 410-415.
[9]
卢立托, 李攀峰, 马洪浩. 基于GPU的不规则三角网向规则格网数字高程模型转换算法优化. 计算机应用, 2015, 35(S1): 32-34.
[10]
顾春雷, 杨漾, 朱志春. 几种建立DEM模型插值方法精度的交叉验证. 测绘与空间地理信息, 2011, 34(5): 99-102.
[11]
Chen GY, Du LB, He HJ, et al. Research on key techniques of expendable conductivity temperature depth measuring system. Instrumentation, 2015, 2(2): 18-27.