摘要: 三维地质可视化是矿区资源勘探、规划设计与安全监测的核心技术支撑,传统可视化方案常受限于插件依赖、跨平台兼容性差及交互体验不足等问题。针对矿区地质模型的高效展示与交互需求,本文提出一种基于Three.js引擎的三维地质可视化方案。首先通过AutoCAD提取矿区地层剖面线,获取地层界面、岩性边界等关键几何信息;随后将剖面线数据导入GoCAD软件,构建包含多套地层、矿体及地质构造的三维地质模型;最后通过模型格式适配与Three.js引擎加载,实现了矿区三维地质模型的无插件Web端可视化与交互式浏览。实验结果表明,该方案充分发挥了Three.js免插件、跨平台、硬件加速的技术优势,可视化模型几何精度高、纹理效果真实,支持旋转、缩放、平移、地层信息查询等流畅交互操作,为矿区地质信息的共享与分析提供了便捷高效的技术手段,具有重要的工程应用价值。
Abstract: 3D geological visualization serves as a core technical support for resource exploration, planning and design, and safety monitoring in mining areas. However, traditional visualization solutions are often constrained by issues such as plugin dependencies, poor cross-platform compatibility, and inadequate interactive experiences. To address the requirements for the efficient display and interaction of geological models in mining areas, this paper proposes a 3D geological visualization scheme based on the Three.js engine. Firstly, stratigraphic profile lines of the mining area are extracted using AutoCAD to obtain key geometric information such as stratigraphic interfaces and lithological boundaries. Subsequently, the profile line data is imported into GoCAD software to construct a 3D geological model comprising multiple stratigraphic layers, ore bodies, and geological structures. Finally, through model format adaptation and loading via the Three.js engine, plugin-free Web-based visualization and interactive browsing of the 3D geological model are realized. Experimental results demonstrate that this scheme fully leverages the technical advantages of Three.js, including its plugin-free nature, cross-platform compatibility, and hardware acceleration. The visualized model exhibits high geometric precision and realistic texture effects, supporting smooth interactive operations such as rotation, zooming, panning, and stratigraphic information querying. This provides a convenient and efficient technical means for the sharing and analysis of geological information in mining areas and holds significant engineering application value.
1. 引言
矿区地质信息的直观表达是矿产资源开发利用、矿山安全风险防控的重要前提[1] [2]。传统矿区地质可视化多依赖专业桌面软件,例如Surfer、MapGIS,存在部署成本高、跨平台访问困难、数据共享不便等问题[3]。而早期Web端可视化方案需依赖VRML、Flash等插件,不仅降低了用户的使用体验,还存在兼容性与安全性的隐患。随着Web技术的发展,HTML5标准与WebGL技术的普及为三维Web可视化提供了新的解决方案,其开放、免插件、硬件加速的特性彻底改变了传统三维Web应用的开发模式。
Three.js作为基于WebGL的轻量级JavaScript开源框架,通过封装底层WebGL接口,大幅降低了三维场景开发难度,同时具备跨浏览器、高渲染效率、强交互性等优势,已在地形可视化、地下管线建模、矿山监测等领域得到广泛应用[4] [5]。本文依托已完成的预处理工作,通过AutoCAD地层剖面线提取、GoCAD三维地质建模以及3dsMax模型格式转换,重点研究Three.js引擎在矿区三维地质模型加载、渲染与交互中的实现方法,构建无插件、跨平台的矿区三维地质可视化系统,解决传统方案中存在的访问限制与交互不足问题,为矿区地质信息的高效传递与深度分析提供技术支撑。
2. 系统设计与实现
2.1. 数据预处理流程优化
数据预处理是三维地质可视化的基础,其核心目标是确保模型数据的准确性与兼容性。首先在AutoCAD中进行地层剖面线提取:基于矿区1:2000地质勘探剖面图,通过图层特性功能筛选出各套地层的顶底板界线、断层破碎带界线及矿体边界线,利用多段线编辑工具对剖面线进行平滑处理,去除冗余节点与异常线段,确保剖面线的连续性与准确性。随后将处理后的剖面线数据以DXF格式导出,导入GoCAD软件进行三维地质建模。在GoCAD中,通过剖面线约束功能对齐不同剖面的同名地层界线,采用层状建模法构建各套地层的三维曲面,结合实体布尔运算整合矿体与断层模型,最终形成包含7套地层及2条断层的完整矿区三维地质模型,并导出为DXF格式文件,GoCAD所建地质模型如图1所示。将导出的DXF格式模型导入到3dsMax,然后在3dsMax中将模型导出为OBJ格式,同时生成对应的MTL材质文件,用于区分不同地质体的物理属性。
Figure 1. Geological model of the mining area
图1. 矿区地质模型
2.2. 基于Three.js的可视化系统构建
2.2.1. 场景初始化
场景初始化是Three.js可视化的基础环节,主要包括场景容器、相机、光源与渲染器的创建[6] [7]。首先创建三维场景对象(THREE.Scene),作为所有可视化元素的载体;相机采用透视投影相机(THREE.PerspectiveCamera),设置视场角为45˚,宽高比与浏览器窗口一致,近裁剪面为0.1 m,远裁剪面为1000 m,确保模型在不同距离下均能清晰显示;光源系统采用“方向光 + 半球光”组合,方向光(THREE.DirectionalLight)模拟太阳光,设置强度为0.8,投射阴影以增强模型立体感,半球光(THREE.HemisphereLight)补充环境光,强度设为0.4,避免模型表面出现过度阴影;渲染器选用WebGLRenderer,设置抗锯齿功能开启,背景色为白色,渲染尺寸与浏览器窗口自适应,并将渲染结果挂载到HTML页面的指定容器中。
2.2.2. 地质模型加载与材质适配
模型加载采用Three.js提供的OBJLoader与MTLLoader组合,首先通过MTLLoader加载3dsMax导出的MTL材质文件,预加载各地质体的材质属性[8],如颜色、光泽度,其中砂岩地层采用浅灰色漫反射材质,页岩采用深灰色材质,矿体采用金黄色高光材质,断层破碎带采用红褐色半透明材质,通过材质差异直观区分不同地质体。随后通过OBJLoader加载OBJ模型文件,将加载后的模型几何体与预加载的材质进行绑定,生成网格模型(THREE.Mesh)并添加到场景中。加载过程中设置加载进度回调函数,实时反馈模型加载状态,同时对模型进行中心点对齐与缩放适配,确保模型在场景中居中显示,避免出现比例失调问题[9]。
2.2.3. 基于层次包围盒(BVH)的射线拾取加速算法
在大规模矿区三维地质场景中,地质体模型通常由数十万甚至百万级的三角面片构成。传统的射线投射算法(Raycasting)通常采用暴力遍历的策略[10],即射线需与场景中每一个三角面片进行求交检测,其时间复杂度为O(n)。随着模型精度的提升,这种计算开销会导致交互帧率急剧下降,产生明显的拾取延迟[11]。
为解决这一问题,本系统删除了基础的全局遍历逻辑,引入层次包围盒(Bounding Volume Hierarchy, BVH)作为空间加速结构。算法核心流程如下:
1) BVH树构建:在模型加载阶段,系统预先计算地质体几何数据的轴对齐包围盒。采用自顶向下的构建策略,根据表面积启发式算法(Surface Area Heuristic, SAH)寻找最优分割平面,将复杂的无序三角网格递归划分为紧凑的左右子节点,直至叶子节点包含的面片数小于预设阈值,从而形成一棵二叉树结构的几何索引。
2) 加速求交测试:当用户点击屏幕触发拾取事件时,射线首先与BVH根节点的包围盒进行相交测试。若射线未击中根节点包围盒,则直接剔除整棵树,避免无效计算;若击中,则递归遍历其子节点。由于包围盒的求交计算远快于三角形求交,且树形结构允许算法快速跳过大量无关的几何区域,使得最终需要进行精确求交的三角面片数量呈指数级减少[12] [13]。
3) 性能收益:实验表明,引入BVH加速后,射线拾取的平均时间复杂度降低至O(logn)。在包含45万面片的测试场景中,单次拾取耗时从原本的15 ms~20 ms降低至0.5 ms以下,实现了在大规模地质场景下的所点即所显,极大地提升了交互流畅度[14]。
2.2.4. 交互功能实现
为满足用户对矿区地质模型的多角度观察与精细化分析需求,引入OrbitControls控制器构建全方位交互式操作体系。该控制器支持鼠标左键拖拽旋转、右键拖拽平移、滚轮缩放等基础操作,同时设置旋转角度限制,水平旋转范围为360˚,垂直旋转范围为−90˚~90˚,有效避免模型观察视角倒置;通过将控制器阻尼系数设置为0.05,使旋转、平移等交互操作具备自然的惯性效果,显著提升操作流畅性。此外,系统新增多维度交互功能:一是设计地层显隐控制面板,支持对各套地层模型进行独立的显示与隐藏控制,便于用户聚焦分析目标地层的空间特征;二是实现了基于模板缓冲区的任意平面动态剖切功能。针对地质体内部结构不可视的痛点,系统利用Three.js的ClippingPlanes特性,允许用户在场景中交互式定义一个或多个剪裁平面。为了解决模型剖切后产生空心断面的视觉缺陷,本研究开发了断面补全算法,利用WebGL的模板测试机制,在渲染管线中对被剪裁平面的背向面和正向面分别进行计数操作。当视线穿过奇数个面片时,判定为模型内部区域,并对其进行颜色填充渲染。该功能使用户能够像切蛋糕一样,沿任意角度如勘探线方向实时剖切地质模型,清晰揭露隐伏矿体与围岩的穿插关系及断层在深部的产状变化,极大地增强了地质模型的三维空间分析能力。三是基于射线检测技术实现坐标实时反馈,用户点击地层任意位置时,系统可精准捕获点击点的三维空间XYZ坐标并即时显示,为地质体空间位置分析提供精准数据支撑;四是开发地层一键爆炸分离功能,触发该功能后各地层将沿预设空间轴自动分离,清晰展示层间接触关系与空间叠置结构;四是增设地层颜色自定义功能,用户可针对不同地层独立调整显示颜色,通过差异化色彩配置提升不同地层的视觉辨识度。同时,系统添加窗口大小自适应功能,当浏览器窗口尺寸改变时,自动调整相机宽高比与渲染器尺寸,确保可视化效果不受窗口缩放影响;并设置矿体、断层等关键地质体的视角切换按钮,点击后相机会以平滑过渡的方式自动飞行至预设视角,快速聚焦目标地质体。
3. 实验结果与分析
3.1. 可视化效果验证
实验环境为Intel Core i5-12600 CPU、32 GB内存、NVIDIA RTX 4060显卡,浏览器采用Chrome 112.0版本。可视化结果显示,矿区三维地质模型能够完整还原7套地层的空间叠置关系,矿体与断层的形态特征清晰可辨,不同地质体通过材质差异实现有效区分,模型表面纹理均匀,无明显锯齿或渲染失真现象,最终效果图如图2所示。在局部细节观察中,通过缩放操作可清晰查看地层界面的接触关系、矿体与地层的穿插关系,以及断层破碎带的延伸方向,可视化精度满足矿区地质分析的实际需求。
Figure 2. Visualization rendering
图2. 可视化效果图
3.2. 性能与兼容性测试
性能测试结果表明,模型加载时间约为2.3 s (模型文件大小为14 MB),正常交互状态下帧率稳定在55~60 fps,无明显卡顿现象;当进行快速旋转或缩放操作时,帧率最低保持在40 fps以上,满足实时交互需求。兼容性测试覆盖Chrome、Firefox、Edge、Safari等主流浏览器,均能实现无插件正常加载与交互,其中移动设备(iOS与Android系统)通过浏览器访问时,可视化效果与PC端一致,交互操作响应及时,验证了系统的跨平台特性。
3.3. 应用价值分析
该可视化系统无需安装任何专用插件,用户通过普通浏览器即可访问矿区三维地质模型,大幅降低了地质信息的共享门槛[15] [16]。交互式操作功能便于地质人员从多角度分析地层结构、矿体分布及断层发育情况,为矿区勘探部署、采矿方案设计提供直观参考;同时,系统可与矿区地压监测、资源储量计算等数据进行集成扩展,如添加监测点可视化、储量分布云图,进一步提升矿区地质信息的综合应用能力[17] [18]。
4. 结论
本文以矿区三维地质可视化为目标,基于AutoCAD、GoCAD与Three.js构建了一套完整的技术方案,通过AutoCAD精准提取地层剖面线,GoCAD构建高精度三维地质模型,Three.js实现无插件Web端可视化与交互。实验结果表明,该方案解决了传统矿区地质可视化中插件依赖、跨平台性差的问题,可视化模型精度高、交互流畅、兼容性强,能够有效支撑矿区地质信息的共享与分析。未来可进一步拓展系统功能,整合地质勘探数据、地压监测数据等多源信息,添加数据查询、空间分析与风险预警模块,实现从“可视化展示”到“智能化分析”的升级,为矿区资源开发与安全管理提供更全面的技术支撑。
NOTES
*通讯作者。