道路线路实时动态三维可视化设计理论和方法

2021-02-18 11:24朱盛彤
智能城市 2021年23期
关键词:三角网三维空间缓冲区

朱盛彤

(江苏纬信工程咨询有限公司,江苏南京 210014)

道路三维可视化(R3DV)是道路设计领域中比较新的概念,将与道路相关的平面、纵横断面等设计资料整合,依托软件生成道路3D场景,模拟道路建成后的景观。在道路线路设计中应用R3DV,能够进一步提升设计质量。R3DV基于CAD建模,通过软件完成动画制作,其缺点是耗时长,且难以融入实际的设计过程中,但VR(虚拟现实)技术的出现为上述问题的解决提供了途径。

1 道路线路整体三维模型的构建方法

1.1 理论依据

R3DV设计实现的关键是道路、地面3D模型的建立,这个模型需要以2D平面、纵横断面设计为基础。英国开发的MXROAD是道路设计系统中较具代表性的一款,其最为突出的特点是系统中加入“串”的概念,可以满足道路复杂设计问题的需要,如交叉道口设计、环岛、桥隧以及路面标线等。国内在道路线路设计方面常用的3D模型有两种,即三角网和孔斯曲面模型。

(1)三角网模型。

三角网模型在自然或人工表面的模拟中应用较广泛,其特点体现在模型易于构建、网形优,能够用于道路设计面的表达。依据道路平面、纵横断面的设计结果,模型能够准确计算横断面各个角点的3D坐标,将相邻横断面对应角点连接形成三角网。

(2)孔斯曲面模型。

孔斯曲面属于计算机科学技术范畴,是一种适合计算机辅助设计的曲面构造方法,通过连接大量曲面片组成具有复杂特征的曲面,所有用于曲面构造的曲面片均由四条边界确定。随着孔斯曲面模型不断完善,其被用于道路设计面模型建立,可以实现面和片之间的光滑连接。

1.2 整体模型构建方法

整体模型的构建比单一模型复杂,其难点问题为设计面内有地形数据点。构建整体模型的过程中,地形数据点无法直接参与网形构建,设计面本身为多个具有复杂性特点的不规则区域,利用点判断区域内每一个地形点的耗时较长。针对这一情况,可以基于动态算法构建CDT(三角网)理论,赋予数据点、三角形面相应的属性,快速完成拼合交线点建网,以此作为约束条件嵌入三角网内,赋予拼合交线区域内的三角形设计面属性,赋予区域外三角形地表面属性。有其他点插入时,若数据点为设计点属性,可以将其插入三角内,为地面点属性时,不插入。这样可以在较短的时间内,将落在设计面区域的地形点有效剔除。

2 道路线路三维空间动态浏览及图形绘制

2.1 三维空间动态浏览的实现方法

在3DS(三维场景)中对道路线形进行设计,有助于评判线形的优劣以及对环境和行车安全的影响。3DS需要依托计算机、利用相关软件生成,这一过程与拍摄照片类似。

道路3DS中,实时动态空间观察的实现应有较高的渲染帧速率作为基本保障,为了达到比较好的视觉效果时,速率一般不低于30帧/s。每产生一帧图像都要完成模型坐标、模型变换、世界坐标、观察变换、观察坐标、投影变换、投影坐标、设备变换、设备坐标等步骤。3DS比较大时,一帧图像的生成要耗费大量时间,会对渲染的帧速率造成不利影响。采用模型简化的方法能够使该问题得到有效解决。本文基于OpenGL(开放式图像库)实现动态三维浏览与显示,OpenGL是一款高性能的软件包,具有视景实时浏览、3D图形绘制等强大的功能。

2.2 三维空间观察

从本质的角度分析,OpenGL是执行机制,执行的前提是状态,OpenGL相关命令的执行全都被置于不同的状态中,并保持到有新的命令改变当前状态为止。

OpenGL命令源自以下图形库,分别为GLU(实用库)、GLX(扩展库)、GLAUX(辅助库)。除了命令外,OpenGL还包括多个动画操作函数,能够对几何造型进行三维仿真。

OpenGL的基本操作流程如图1所示。

图1 OpenGL的基本操作流程

OpenGL提供了可用于三维观察的函数,但直接使用这些函数难以获得视参数,无法实现场景简化。可以依据三维观察的基本原理,编写相关程序,实现视参数的获取及场景简化,大幅度提高设计效率。

2.3 图形绘制

OpenGL提供的函数库包括光照模型计算、纹理映射等,可以为软件编程带来便利。可以借助OpenGL对光源的具体位置、强度以及材质属性等参数进行设置,执行光照计算,按照所得的结果设定像素的光亮度。

OpenGL能够按光照条件创造接近真实世界的图形,光照条件包括环境光、散射光、镜面光。环境光属于自然光线范畴,被其照射的物体受光均匀;散射光来自某个方向,能够被物体表面均匀反射;镜面光具有特定的方向性,会被强烈反射至某个方向。OpenGL支持的独立光源种类较多,目前已知8种,这些光源能够放在3DS的任何位置,放置在无穷远处时,能够获得具有平行特点的光线,距离物体非常近时,光线可以向外发生辐射。

OpenGL还可以提供贴图函数,利用该函数能够在物体表面形成与真实世界相似的花纹,进一步增强视觉感。基于OpenGL绘制出的道路线路景观图形与真实世界的情况极为相似。

基于OpenGL绘制的公路线路图形如图2所示。

图2 基于OpenGL绘制的公路线路图形

2.4 道路属性信息查询

(1)查询思路。

道路需要依托环境建设,环境信息是道路线路设计中不可或缺的重要因素之一,对整个设计具有一定程度的影响,环境信息主要包括水文、地质条件等。本文创建的道路整体模型能够被赋予水文、地质等环境信息,形成数据库索引,在该数据库中存储大量的水文地质特征描述,每种描述与不同的ID号相对应。道路整体模型由若干三角形面组合而成,可以将与某种水文地质条件对应的ID号加入整体模型的三角形面中。

在道路3DS浏览过程中,可以对所需的地质状况进行查询,评价线路设计方案的合理性,其应用的是OpenGL中对象选定与反馈两项技术,两者是OpenGL中较为强大的两个功能,可以实现3DS与设计活动之间的交互。选定功能可用于3DS区域及对象的识别,反馈能够将具有利用价值的信息快速返回。

(2)查询方法。

①使用选定功能时,可以在窗口任意处点击鼠标左键,选取处于鼠标下的对象,对特定对象的选取被称为检选,利用OpenGL的选定特征,可以指定一个三维空间视见窗口,确定落在窗口内的具体对象。

借助函数glPickMatrix的强大功能,可以产生相应的矩阵,其基础是屏幕坐标与像素维数,运用该矩阵可以在鼠标指针处创建视见窗口,利用OpenGL的选定功能对这个视见窗口进行测试,查看其所含的对象。

从本质上分析,OpenGL中的选定归属于渲染模式范畴,在具体的选定模式当中,未将像素复制到帧缓冲区。在三维空间视见窗口内的图元将会在选定的缓冲区中产生相应的点击记录。具体操作时,应预先对选定缓冲区进行设置,完成对象或模型命名,使选定缓冲区能够有效识别对象和模型,以分解的方式操作选定缓冲区,确定三维空间视见窗口中存在的对象。

②R3DV设计中,对图元祖命名时可以使用创建的整体模型中,与三角形序号相对应的名称,具体选取时,在场景内用鼠标每次点击均能创建一个三维空间视见窗口,在该窗口内的对象会生成点击记录。对选定缓冲区进行检测,能够获得鼠标点击对象的具体名称,这个名称就是整体模型中三角形的序号。

通过序号可以在模型内得到对应的ID号,利用SQL语言获得与三角形对应的水文地质信息。使用鼠标在道路整体模型内的边坡位置处点取后,可以得到地面的地质特征情况。将其他属性信息赋予整体模型的三角形面时,通过上述方法能够快速查询3DS的属性信息。例如鼠标点取的位置为路面时,返回的信息为路面的属性(沥青混凝土或水泥混凝土以及厚度等),能够准确计算物方空间坐标及该点所在的里程。

3 结语

道路线路设计是一项较为复杂且系统的工作,其涵盖的内容较多,任意环节出现问题均可能影响设计质量,直接关系道路工程后续建设的质量。为避免这一问题的发生,设计人员应了解并掌握与线路相关的自然条件,确保线路设计的合理性,可以运用三维可视化技术,更好地提升线路设计的质量与效果。

猜你喜欢
三角网三维空间缓冲区
三维空间的二维图形
基于网络聚类与自适应概率的数据库缓冲区替换*
嫩江重要省界缓冲区水质单因子评价法研究
针对路面建模的Delaunay三角网格分治算法
白纸的三维空间
关键链技术缓冲区的确定方法研究
三维空间中次线性Schr(o)dinger-Kirchhoff型方程的无穷多个负能量解
清华山维在地形图等高线自动生成中的应用
AVS标准中的视频码流缓冲区校验模型分析
在AutoCAD环境下不规则三角网构建及等高线生成