一种大曲率线状实体的三维可视化方法
刘钊1, 高培超1, 闵世平2, 赵龙2, 罗智德1
1.清华大学土木工程系地球空间信息研究所,北京 100084
2.中铁二院工程集团有限责任公司,成都 610031

第一作者简介: 刘 钊(1967-),男,副教授,主要研究方向为地理信息系统理论与应用、遥感数据处理与应用等。Email:liuz@tsinghua.edu.cn

摘要

线状模型是虚拟三维场景中的重要模型,其精细程度直接影响着虚拟场景的视觉效果。制作线状模型的常用方法分为整体模型法和分段拼接法,对于弯曲程度较大的线状模型,使用整体模型法制作时难以控制顶点坐标和纹理贴图,而采用分段拼接法又会在转弯处产生模型空隙和纹理重叠,导致模型失真。该文提出了一种针对大曲率线状实体的三维可视化方法,在几何模型制作阶段,根据路径和截面数据直接计算模型顶点坐标、法向量和索引数据,实现放样建模; 在纹理贴图阶段,通过建立模型顶点与纹理图片像素的映射关系,实现模型贴图。结果表明,该算法可应用于铁路路基等大曲率线状模型的制作,具有精度可靠、人工交互少及可视化效果好的特点。

关键词: 3D-GIS; 线状模型; 三维可视化; 大曲率线状实体
中图分类号:TP75P208 文献标志码:A 文章编号:1001-070X(2014)03-0043-05 doi: 10.6046/gtzyyg.2014.03.07
A 3D visualization method for high-curvature linear entity
LIU Zhao1, GAO Peichao1, MIN Shiping2, ZHAO Long2, LUO Zhide1
1. Institute of Geospatial Information, Tsinghua University, Beijing 100084, China
2. China Railway Eryuan Engineering Group Co., Ltd., Chengdu 610031, China
Abstract

The linear model is among the vital models in 3D visual scene, and its degree of fineness determines the visual effect of the scene. Common methods for constructing linear models can be divided into integral model method and spliced model method; nevertheless, for large-curvature linear models, neither method is ideal. The vertex coordinates and texture mapping are difficult to control when the integral model method is employed, and space between models and texture overlaps is inevitable when the other methods are used. A 3D visualization method for high-curvature linear entity is proposed in this paper. In the phase of geometric modeling, the vertex coordinates, normal vectors and index data are calculated for model lofting based on path and cross section. In the phase of texture mapping, textures are made by creating a mapping between vertices on the model and pixels on the photo. The results show that the algorithm can be utilized to make large-curvature linear models like railway roadbed models, and the algorithm has the merits of high accuracy, requirement of less manual work and good visual effect.

Keyword: 3D-GIS; linear model; 3D visualization; high-curvature linear entity
0 引言

近年来, 三维地理信息系统(3D-GIS)发展迅猛, 其应用已逐渐从简单的三维效果演示转向复杂的三维设计与三维分析。3D-GIS的直观表现形式为虚拟三维场景, 其美观性和精确性保证了3D-GIS的视觉效果和可信程度。

虚拟三维场景通常由三维环境和三维实体(即地物)组成, 三维实体又可分为块状实体和线状实体2大类, 其中线状实体模型的制作方法主要有2种: ①整体模型法, 将整个线状实体制作成单个模型, 如文献[1]和文献[2]制作的地下管线和三维公路的整体模型; ②分段模型法, 只对线状实体的一段进行精细建模, 然后通过拼接法将分段模型组合在一起, 从而完成线状模型的制作, 如文献[3]完成的铁路路基模型。

经过研究和实践, 发现无论是整体模型法还是分段模型法, 都存在大曲率处模型失真的问题。对于整体模型法, 在模型大曲率转弯处, 由于难以精确计算纹理坐标, 达不到逼真的效果; 对于分段模型法, 在拼接模型的大曲率转弯处, 2个分段模型的内侧产生模型重叠和纹理叠置的问题, 而外侧出现模型空隙。因此, 本文提出一种在保证大曲率线状实体模型精度的同时, 能够尽可能地实现美观、逼真效果的三维可视化方法, 具有一定的理论研究价值和实际意义。

1 大曲率线状实体的可视化

大曲率线状实体可视化的原始数据可分为路径数据、横截面数据及纹理等3部分。其中路径数据和横截面数据分别描述了线状实体的走势和横截面形状, 用于几何建模阶段; 纹理是实体色彩属性的基础数据, 用于纹理贴图阶段。本文采用的路径数据是以世界坐标系中的一系列散点(路径转点)的形式表示, 横截面数据由平面笛卡尔坐标系中的一系列散点(截面顶点)表示。

1.1 大曲率线状实体几何建模

大曲率线状实体几何建模的实质是根据路径数据和横截面数据计算模型上所有顶点的世界坐标值。在几何建模过程中, 模型顶点总数t取决于路径转点数L和横截面顶点数F, 其关系为

t=LF 。 (1)

根据线状实体的特点, 采用放样建模法[4]计算模型各顶点坐标, 为使几何模型能在虚拟三维场景中正常显示, 应附带计算各顶点的索引值和法向量。本文计算结果以“ .x” 模型格式存储。

1.1.1 坐标转换与数据抽稀

为了方便表述路径与横截面之间相互垂直的位置关系, 将路径与横截面的交点命名为穿透点。在放样建模之前, 需通过平移操作在二维笛卡尔坐标系中调整横截面图形的位置, 使穿透点与坐标系原点重合。

当路径转点间隔过小、横截面宽度过大时, 容易使放样建模的“ 放样” 过程出错, 因此还需对路径数据进行适当的抽稀处理(可使用Douglas-Peucker算法[5]或SimpliPoly算法[6]), 以减小路径转点密度。

1.1.2 顶点坐标计算

假设一条仅有4个转点(M, N, P, Q)的短路径, 其中M为起点, Q为终点, NP为中间点。假设横截面为三角形(顶点为A, B, C), 如图1, 其中o-xy为模型坐标系, o1-x1y1z1为世界坐标系。在实际计算过程中, 根据算法的不同, 将路径转点分为起点、中间点及终点等3部分。

图1 横截面ABC和路径MNPQFig.1 Cross section ABC and path MNPQ

1) 起点处顶点坐标计算。其算法如下:首先, 横截面上的各顶点添加z坐标值(z=0), 将横截面扩展至三维模型坐标系(图2(左)); 然后平移三维模型坐标系, 使其原点o与世界坐标系中的M点重合(图2 (右)); 再计算z轴旋转至MN方向的四元数Quaternion[7], 并利用Quaternion调整三维模型坐标系的姿态, 使zMN同向(图3)。根据四元数的特性, 旋转后的横截面ABC恰好垂直于直线MN, 此时横截面各顶点在世界坐标系中的新坐标值即为起点处的放样结果。

图2 将横截面放置到世界坐标系中Fig.2 Place the cross section in the world coordinate system

图3 姿态调整后的三维模型坐标系Fig.3 3D model coordinate system after attitude adjustment

图4 射线打点Fig.4 Calculate the position of new vertex by rays

2) 中间点处顶点坐标计算。其算法如下:首先, 计算中间点处的角平分面, 以中间点N为例, 可由平面方程的点法式[8]计算经过∠MNP的角平分线且垂直于NMNP向量所在平面的角平分面α (图4)。其中α 的法向量n可通过向量运算[9]获得, 即

n=normalise(NP)normalise(NM)[normalise(NP)+normalise(NM)] , (2)

式中normalise()表示对向量进行归一化操作; 然后, 进行射线打点, 在N点的前邻点M处, 以横截面顶点为起点、以MN为方向作射线, 射线条数等于横截面顶点个数, 射线与α 的交点坐标, 即为N点处的模型顶点坐标。

3) 终点处顶点坐标的计算。路径终点处无法求取角平分面, 故由终点处的垂面代替, 终点处的射线打点方法同中间点。

1.1.3 索引值计算

通过索引值计算, 为每个模型顶点赋予唯一的编号, 通过索引号的分组, 建立顶点之间的拓扑关系, 从而组建空间三角网。本文采用的索引值计算方法为: 以路径方向为行、以截面方向为列, 从起点到终点依次为所有模型顶点编号(图5), 按顺时针顺序遍历所有三角形, 以顶点序号组作为最终的索引值组。

图5 将所有模型顶点按一定规则排列Fig.5 List all the vertices by some rules

1.1.4 法向量计算

法向量决定了模型表面在同等光照条件下的明暗程度, 可分为平面法向量和顶点法向量2类。平面法向量可由2条边向量直接叉乘而得; 顶点法向量的计算可使用平均向量法[10]、面积加权平均法[10]及角度加权平均法[11]等方法。

考虑到由平面法向量定义的模型在光照下较为生硬、棱角明显, 而由顶点法向量定义的模型在光照下较为平滑, 所以采用顶点法向量作为模型的默认法向量。在顶点法向量的计算过程中, 本文采用平均向量法[10]

1.2 大曲率线状实体纹理贴图

纹理贴图可以简化模型制作过程[12, 13], 是三维可视化的常用方法。目前, 众多商业建模软件已集成了纹理贴图功能, 用户使用方便, 但对于大曲率线状实体而言, 纹理贴图需要大量的人工交互, 操作经验性较强, 且难以产生理想的效果。本文基于纹理映射思想, 实现了针对大曲率线状实体的纹理贴图算法。

1.2.1 单纹理贴图模式

纹理映射的关键是建立模型顶点与纹理图像像素之间的映射关系, 为简化问题, 假设仅使用单张纹理图片对大曲率线状模型进行贴图, 并假设模型横截面为三角形, 沿任一平行于路径的棱线l将模型外表面拆剪并平铺。建立以棱线l方向为x轴, 截面点连线为y轴的辅助坐标系(图6), 其中原点o为棱线l与起点截面上顶点(R1, S1, T1, U1)连线的交点, x坐标值和y坐标值的最大值均为1.0。

图6 辅助坐标系Fig.6 Auxiliary coordinate system

在辅助坐标系中, 不同横截面上的对应顶点的y坐标值相同(如 yT1= yT3), 同一截面上所有顶点的x坐标值相同(如 xT3= xR3), x轴上任意2点间的距离等于其在世界坐标系中的空间距离。将模型顶点在辅助坐标系中的坐标值作为顶点的纹理坐标值。

辅助坐标系实现了对纹理图片的伸缩和扭曲变换, 使图片更适合大曲率线状模型的纹理贴图。实践表明, 用这种特殊的辅助坐标系代替二维笛卡尔坐标系, 能够建立更准确的纹理映射关系, 从而取得更逼真的效果。

1.2.2 多纹理贴图模式

线状模型的贴图特点明显, 其沿路径方向的贴图往往具有重复性, 而垂直于路径方向的贴图往往具有多样性。以铁路模型为例, 其沿铁路中线方向有着相同的贴图, 而垂直于铁路中线方向的贴图则分为左边坡、铁轨及右边坡等不同效果。多纹理贴图以单纹理贴图为基础, 针对线状模型的多纹理贴图主要有图像拼接法和模型拆分法2种实现途径。

图像拼接法的原理是将垂直于路径方向的多张贴图拼接成一张图片γ , 然后在沿路径方向将若干张图片γ 拼接成图片η , 从而转换成图片η 的单纹理贴图模式。

模型拆分法的原理是根据沿路径方向的贴图重复次数m, 将纹理坐标中x分量的有效范围从1.0扩展至m, 由此实现重复性; 根据垂直于路径方向的贴图变化次数v, 将横截面拆分成v段, 对每段横截面单独进行几何建模和纹理贴图操作, 并以子模型形式输出, 由此实现多样性。

由于计算机图形学中的模型可由多个子模型组成, 因此模型拆分法只是逻辑拆分, 无需事后的组合操作。考虑到图像拼接过程中会产生拼接误差, 本文采用模型拆分法。

2 算法应用
2.1 铁路路基模型

假设一条极端的圆形铁路中线, 利用本文算法制作铁路路基模型, 结果如图7所示。模型外侧已无空隙, 模型内侧的纹理重叠现象也被消除, 在整条路径上, 左右边坡的纹理图片均垂直于铁路中线。

图7 铁路路基模型Fig.7 Railway bed model

2.2 桥梁模型

利用本文算法, 可快速制作贴图复杂的桥梁主体模型, 以某桥梁为例, 其可视化结果如图8所示。

图8 桥梁模型Fig.8 Bridge model

3 精度评价
3.1 几何精度

大曲率线状实体的几何精度主要取决于放样误差。放样误差是指放样建模过程中产生的误差, 由于各棱线方向的放样原理相同, 但往往只有中线方向的结点坐标已知, 因此可关注中线方向的放样误差。以图7中的铁路路基模型为例, 在模型制作之前, 铁路中线上各结点的坐标值已知。在放样建模过程中, 各结点坐标又会被重新计算, 因此可使用点位精度来衡量放样误差。点位精度计算公式为

ρ=x2+y2+z2, (3)

式中: △ x, △ y, △ z分别为x, y, z轴线方向的误差; △ ρ 为点位精度。计算结果表明△ ρ 的值往往为零, 这说明计算公式准确, 并说明代码中为变量设置了足够的精度, 没有引起舍入误差, 在坐标数值较小时未产生中线方向上的放样误差, 从而保证了模型的几何精度。

3.2 纹理精度

纹理贴图的精度多采用定性法进行评价, 主要方式为目视评价。不对纹理贴图精度进行定量评价的原因如下:

1)真实建模对象的纹理极其复杂, 建模过程中多采用近似贴图、重复贴图的方法对实际效果进行仿真, 其贴图不具备真实性, 因此无法严格地定量评价纹理贴图的精度。

2)美观和真实已经是复杂建模研究中的挑战, 当前研究重点多为如何快速制作具有真实感的贴图效果, 使用目视评价的方法已经足以衡量模型贴图的真实程度。

3)从铁路路基模型实例和桥梁模型实例中可以看出, 本文算法已经可以解决先前算法在模型转弯处的不足, 避免了模型贴图的错乱, 达到了逼真的效果。

4 结论

本文充分考虑大曲率线状实体的特点, 研究了复杂线状实体几何建模及纹理贴图的算法, 该算法可有效地用于线状实体尤其是大曲率线状实体的三维可视化技术中, 所产生的模型视觉效果较好、精度优良, 并在案例中得到体现。根据本文算法编写的软件系统, 可大量减少当前建模软件中必需的人工交互操作, 仅需用户提供路径坐标列表、横截面坐标列表并指定纹理图片, 即可快速地实现三维可视化。

The authors have declared that no competing interests exist.

参考文献
[1] 李清泉, 严勇, 杨必胜, . 地下管线的三维可视化研究[J]. 武汉大学学报: 信息科学版, 2003, 28(3): 277-282.
Li Q Q, Yan Y, Yang B S, et al. Research on 3D visualization of underground pipeline[J]. Geomatics and Information Science of Wuhan University, 2003, 28(3): 277-282. [本文引用:1] [CJCR: 0.779]
[2] 左小清, 李清泉, 唐炉亮. 公路三维模型建立与数据组织[J]. 武汉大学学报: 信息科学版, 2004, 29(2): 179-183.
Zuo X Q, Li Q Q, Tang L L. 3D modeling and data organization of highway[J]. Geomatics and Information Science of Wuhan University, 2004, 29(2): 179-183. [本文引用:1] [CJCR: 0.779]
[3] 朱颖, 闵世平, 代强玲. 面向铁路行业三维场景快速构建一体化技术研究[J]. 铁道工程学报, 2011(12): 4-10.
Zhu Y, Min S P, Dai Q L. Research on 3D scene quickly reproduce facing railway industry[J]. Journal of Railway Engineering Society, 2011(12): 4-10. [本文引用:1] [CJCR: 0.7241]
[4] 张弓, 许伟平, 陈莹. 沿路径放样建模在3维GIS中的设计与实现[J]. 测绘与空间地理信息, 2010, 33(2): 132-135.
Zhang G, Xu W P, Chen Y. The design and implementation of loft modeling along path in 3D GIS[J]. Geomatics and Spatial Information Technology, 2010, 33(2): 132-135. [本文引用:1]
[5] Douglas D H, Peucker T K. Algorithms for the reduction of the number of points required to represent a digitized line or its caricature[J]. The Canadian Cartographer, 1973, 10(2): 112-122. [本文引用:1]
[6] Chuon C, Guha S, Janecek P, et al. Simplipoly: Curvature-based polygonal curve simplification[J]. International Journal of Computational Geometry and Applications, 2011, 21(4): 417-429. [本文引用:1] [JCR: 0.176]
[7] Pletinckx D. Quaternion calculus as a basic tool in computer graphics[J]. The Visual Computer, 1989, 5(1): 2-13. [本文引用:1]
[8] Salas S, Hille E, Etgen G. Calculus: One and several variables[M]. 10th ed. New York: John Wiley and Sons, 2006: 679-682. [本文引用:1]
[9] Aarts J. Plane and solid geometry[M]. New York: Springer, 2009: 271-275. [本文引用:1]
[10] 程磊, 刘海艳. 一种三维实体模型表面法线计算方法研究[J]. 沈阳理工大学学报, 2009, 28(4): 25-26.
Cheng L, Liu H Y. Research of calculating method for surface normal line of 3D-entity model[J]. Transactions of Shenyang Ligong University, 2009, 28(4): 25-26. [本文引用:3] [CJCR: 0.2044]
[11] 杨晓东, 万旺根, 崔滨, . DEM数据及其顶点法向量的压缩编码和显示[J]. 计算机仿真, 2010, 27(11): 221-225.
Yang X D, Wan W G, Cui B, et al. Compression coding and display of DEM data and its vertex’s normal vector[J]. Computer Simulation, 2010, 27(11): 221-225. [本文引用:1] [CJCR: 0.5628]
[12] Zhang Z X, Wu J, Zhang J Q. Rapid texture mapping from image sequences for building geometry model[J]. Geo-spatial Information Science, 2003, 6(3): 8-15. [本文引用:1]
[13] Rau J, Teo T, Chen L, et al. Integration of GPS, GIS and photogrammetry for texture mapping in photo-realistic city modeling[C]//2010 Fourth Pacific-Rim Symposium on Image and Video Technology. Advances in Image and Video Technology, Berlin: Springer, 2006: 1283-1292. [本文引用:1]