尹晶飞
(中国地震局地球物理研究所,北京 100081)
WEB3D 技术是一门在计算机图形学、计算机多媒体技术和仿真技术的基础上发展起来的交叉学科。利用WEB3D 技术建立一个可视的三维地磁场,能使用户沉浸到三维空间中,更加直观观察数据,真实地与数据交互,从而可以更快,更全面地分析理解运用地磁场的数据。
Direct 3D 是基于微软的通用对象模式COM(Common Object Mode)的3D 图形API。它所有的语法定义包含在微软提供的程序开发组件的帮助文件、源代码中。Direct 3D 是微软公司Direct X SDK 集成开发包中的重要部分,适合多媒体、娱乐、即时3D 动画等广泛和实用的3D 图形计算。自1996 年发布以来,Direct 3D 以其良好的硬件兼容性和友好的编程方式很快得到了广泛的认可,现在几乎所有的具有3D 图形加速的主流显示卡都对Direct 3D 提供良好的支持。但它也有缺陷,由于是以COM 接口形式提供的,所以较为复杂,稳定性差,另外,目前只在Windows 平台上可用。
Java 3D API 是Sun 定义的用于实现3D 显示的接口。3D 技术是底层的显示技术,Java 3D 提供了基于Java 的上层接口。Java 3D 把OpenGL 和Direct X 这些底层技术包装在Java 接口中。这种全新的设计使3D技术变得不再繁琐并且可以加入到J2SE、J2EE 的整套架构,这些特性保证了Java 3D 技术强大的扩展性。Java 3D API 提供了丰富的可用于建立虚拟建筑环境应用的类,如灯光、雾、纹理、声音等,编写Java 3D程序时,大多情况下只需找到所需的类加以应用。相对于OpenGL 和Direct X,Java 3D 更容易掌握,编程效率更高。JAVA 本身具有强大的网络功能,再加上OpenGL 和Direct X 强大的三维图像功能,使得原来只能在计算机上看到的三维图形可以通过Internet 展示在浏览者面前。
地磁场是地球物理学的一个重要组成部分。地磁场和地球引力场不一样,是一个地球物理场,它是由基本磁场与变化磁场两部分组成。而地磁场模型包括区域地磁场模型和全球地磁场模型,它是地磁学的重要研究内容之一,在历届IAGA 和IUGG 会议所设专题都占有重要位置。IAGA 的相关小组每5 年会给出一个世界地磁场参考场。
对于区域地磁场模型的计算方法有很多种,但主要有几种:多项式方法(包括泰勒多项式,马克劳林多项式和勒让德多项式);球谐分析方法;曲面样条函数方法;矩谐分析方法;冠谐分析方法。其中球谐分析是高斯在1839 年提出的,矩谐分析是Alldredge 于1981 年提出的,冠谐分析是Haines 于1985 年提出的。每种方法都有自己的优点和缺点。我们要根据自己的实际需求选择合适的方法建立模型。
空间的场数据一般都是三维的、离散的和没有规律的,计算机要将其进行逼真的三维显示就首先要对其进行处理,将其处理成为计算机容易表达的数据。根据计算机表达三维模型的方式不同,处理数据的方法也不同。如果以体模型来表达真三维,则可以对数据进行四面体剖,分成各个三棱柱处理,然后用模型显示。如果以面模型表达则可以对数据进行三角剖分,如Delaunay 等技术。也有基于分形和基于曲面的模型。通过卫星磁测数据和地面分布合理的地磁台站数据,可以建立起局部地磁场数据模型。将离散的地磁数据在三维空间中插值形成规则的网格化数据。每个网格应包含地磁矢量的方向和大小。然后使用可视化工具将每个网格的数据以椎体的形式显示出来。为了达到好的观察效果,需要解决好两个问题:将所有数据映射到视图中的一个投影区域内;将三维地磁场中不同大小的数据用不同的颜色表示。这样可通过色彩与图像亮度形象地看到地磁场分布情况。编写一个函数能在三维重力场数据中自动查找出最大重力值和最小重力值,并根据其差值等分出若干区域作为使用的基色数量,计算出对应于不同重力值域的颜色值,即进行颜色映射标号。