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