尹晶飛
(中國(guó)地震局地球物理研究所,北京 100081)
WEB3D 技術(shù)是一門(mén)在計(jì)算機(jī)圖形學(xué)、計(jì)算機(jī)多媒體技術(shù)和仿真技術(shù)的基礎(chǔ)上發(fā)展起來(lái)的交叉學(xué)科。利用WEB3D 技術(shù)建立一個(gè)可視的三維地磁場(chǎng),能使用戶(hù)沉浸到三維空間中,更加直觀(guān)觀(guān)察數(shù)據(jù),真實(shí)地與數(shù)據(jù)交互,從而可以更快,更全面地分析理解運(yùn)用地磁場(chǎng)的數(shù)據(jù)。
Direct 3D 是基于微軟的通用對(duì)象模式COM(Common Object Mode)的3D 圖形API。它所有的語(yǔ)法定義包含在微軟提供的程序開(kāi)發(fā)組件的幫助文件、源代碼中。Direct 3D 是微軟公司Direct X SDK 集成開(kāi)發(fā)包中的重要部分,適合多媒體、娛樂(lè)、即時(shí)3D 動(dòng)畫(huà)等廣泛和實(shí)用的3D 圖形計(jì)算。自1996 年發(fā)布以來(lái),Direct 3D 以其良好的硬件兼容性和友好的編程方式很快得到了廣泛的認(rèn)可,現(xiàn)在幾乎所有的具有3D 圖形加速的主流顯示卡都對(duì)Direct 3D 提供良好的支持。但它也有缺陷,由于是以COM 接口形式提供的,所以較為復(fù)雜,穩(wěn)定性差,另外,目前只在Windows 平臺(tái)上可用。
Java 3D API 是Sun 定義的用于實(shí)現(xiàn)3D 顯示的接口。3D 技術(shù)是底層的顯示技術(shù),Java 3D 提供了基于Java 的上層接口。Java 3D 把OpenGL 和Direct X 這些底層技術(shù)包裝在Java 接口中。這種全新的設(shè)計(jì)使3D技術(shù)變得不再繁瑣并且可以加入到J2SE、J2EE 的整套架構(gòu),這些特性保證了Java 3D 技術(shù)強(qiáng)大的擴(kuò)展性。Java 3D API 提供了豐富的可用于建立虛擬建筑環(huán)境應(yīng)用的類(lèi),如燈光、霧、紋理、聲音等,編寫(xiě)Java 3D程序時(shí),大多情況下只需找到所需的類(lèi)加以應(yīng)用。相對(duì)于OpenGL 和Direct X,Java 3D 更容易掌握,編程效率更高。JAVA 本身具有強(qiáng)大的網(wǎng)絡(luò)功能,再加上OpenGL 和Direct X 強(qiáng)大的三維圖像功能,使得原來(lái)只能在計(jì)算機(jī)上看到的三維圖形可以通過(guò)Internet 展示在瀏覽者面前。
地磁場(chǎng)是地球物理學(xué)的一個(gè)重要組成部分。地磁場(chǎng)和地球引力場(chǎng)不一樣,是一個(gè)地球物理場(chǎng),它是由基本磁場(chǎng)與變化磁場(chǎng)兩部分組成。而地磁場(chǎng)模型包括區(qū)域地磁場(chǎng)模型和全球地磁場(chǎng)模型,它是地磁學(xué)的重要研究?jī)?nèi)容之一,在歷屆IAGA 和IUGG 會(huì)議所設(shè)專(zhuān)題都占有重要位置。IAGA 的相關(guān)小組每5 年會(huì)給出一個(gè)世界地磁場(chǎng)參考場(chǎng)。
對(duì)于區(qū)域地磁場(chǎng)模型的計(jì)算方法有很多種,但主要有幾種:多項(xiàng)式方法(包括泰勒多項(xiàng)式,馬克勞林多項(xiàng)式和勒讓德多項(xiàng)式);球諧分析方法;曲面樣條函數(shù)方法;矩諧分析方法;冠諧分析方法。其中球諧分析是高斯在1839 年提出的,矩諧分析是Alldredge 于1981 年提出的,冠諧分析是Haines 于1985 年提出的。每種方法都有自己的優(yōu)點(diǎn)和缺點(diǎn)。我們要根據(jù)自己的實(shí)際需求選擇合適的方法建立模型。
空間的場(chǎng)數(shù)據(jù)一般都是三維的、離散的和沒(méi)有規(guī)律的,計(jì)算機(jī)要將其進(jìn)行逼真的三維顯示就首先要對(duì)其進(jìn)行處理,將其處理成為計(jì)算機(jī)容易表達(dá)的數(shù)據(jù)。根據(jù)計(jì)算機(jī)表達(dá)三維模型的方式不同,處理數(shù)據(jù)的方法也不同。如果以體模型來(lái)表達(dá)真三維,則可以對(duì)數(shù)據(jù)進(jìn)行四面體剖,分成各個(gè)三棱柱處理,然后用模型顯示。如果以面模型表達(dá)則可以對(duì)數(shù)據(jù)進(jìn)行三角剖分,如Delaunay 等技術(shù)。也有基于分形和基于曲面的模型。通過(guò)衛(wèi)星磁測(cè)數(shù)據(jù)和地面分布合理的地磁臺(tái)站數(shù)據(jù),可以建立起局部地磁場(chǎng)數(shù)據(jù)模型。將離散的地磁數(shù)據(jù)在三維空間中插值形成規(guī)則的網(wǎng)格化數(shù)據(jù)。每個(gè)網(wǎng)格應(yīng)包含地磁矢量的方向和大小。然后使用可視化工具將每個(gè)網(wǎng)格的數(shù)據(jù)以椎體的形式顯示出來(lái)。為了達(dá)到好的觀(guān)察效果,需要解決好兩個(gè)問(wèn)題:將所有數(shù)據(jù)映射到視圖中的一個(gè)投影區(qū)域內(nèi);將三維地磁場(chǎng)中不同大小的數(shù)據(jù)用不同的顏色表示。這樣可通過(guò)色彩與圖像亮度形象地看到地磁場(chǎng)分布情況。編寫(xiě)一個(gè)函數(shù)能在三維重力場(chǎng)數(shù)據(jù)中自動(dòng)查找出最大重力值和最小重力值,并根據(jù)其差值等分出若干區(qū)域作為使用的基色數(shù)量,計(jì)算出對(duì)應(yīng)于不同重力值域的顏色值,即進(jìn)行顏色映射標(biāo)號(hào)。