X-Plane 地景結構概論

在玩模擬飛行的時候,應該有八成以上的玩家會碰到地景相關的問題,這篇文章我們要來談一下X-PLANE系列的地景結構。

X-PLANE系列地景是由不同的階層(Layer)去構成的,這些階層上可以分為三層:MESHTEXTURE以及OBJECT。如下圖所示


MESH

簡單來說就是土地地形(Terrain),包含海拔、稜線等。

在沒有安裝任何MESH的情況下,整個XP世界會是一片水平的海洋,MESH資料會建構成一個三維度的實體物件,也就是最基礎的陸地。

而MESH的結構是一格一格的網格,所以當MESH的分辨率越高,地勢起伏的擬真度也會越高。

Mesh網格範例(取自xplane org forum)

延伸閱讀:x-plane官方網誌對於dsf基礎mesh的介紹


TEXTURE

但光有MESH還不夠,MESH只有告訴XP程式哪邊是高哪邊是低,這時候還需要一個最基礎的TEXTURE去投射MESH上,才能構成我們肉眼可看見的地面,包含沙灘、草原等等。

TEXTURE同時需要設置座標位置(Texture Coordinates)以及地形的透明度,才能跟MESH貼齊,進而構成我們最基礎看到的平面地景。

範例:台中地區的衛星貼圖Texture

範例:地景中的3D塔台物件


OBJECT

OBJECT是地景中最高層的二維或三維可視物件,例如道路、標線、橋樑、建築、飛機、樹木、人等等,都屬於OBJECT的一環。進而完成3D地景的可視化。

範例:地景中的3D塔台物件

這些物件堆疊後,就可以形成我們日常最常見的地景了,下圖是大家很熟悉的航廈可視圖


接下來,有關客製化地景(Custom Scenery),在這之前,我們要先解釋一下什麼是預設地景(Global Scenery)。

所謂的預設地景,也就是XP在執行時預設的地景階層,如果少了這層地景,當你載入網格內就會發現四周只呈現一片海洋平面。在執行XP Installer.exe安裝檔時,出現Add or Remove Scenery選項中裡面下載的資料,就是XP內附最基本的地景階層─預設地景

XP installer執行截圖
在installer裡面可以管理自己要下載的地景檔區域,不需要的地景可以不用下載節省空間
Global Scenery/Earth nav data中,預設地景會以經緯度做資料夾區分來分區載入


XP的預設地景使我們在望向外界時提供了足夠的擬真度(雖說可能不像Microsoft Flight Simulator這麼擬真,畢竟兩方所使用的地景生成方法差了一個世代),但是已經給開發者基礎的框架可以讓我們進一步去完善我們的飛行體驗。


就如同其他模擬飛行軟體,XP也提供了可以自行修改地景的選擇。首先,我們要先理解XP讀取地景的邏輯以及資料結構:

1. .dsf 檔

dsf(Distribution Scenery Format)檔案的資料結構使它可以夾帶mesh、texture以及object等資料,我們看到的預設地景(Global Scenery)就是以dsf的型態儲存。

資料夾內用經緯度做區別的.dsf地景檔

延伸閱讀:什麼是DSF檔案以及檔案資料結構

2. apt.dat 檔

apt.dat檔案最主要用於設計機場內部的細節,包含機場的邊界(boundary)劃分、多樣性的材質設定(例如跑道摩擦係數等)、滑行道的規劃等,另外,apt.dat也可以以物件導向的方式,在座標位置上設定.obj,建造各種3D地景如:航廈、空橋、標示牌等。

機場地景包中常見除了包有.dsf的地景檔資料夾以外,一定會含有apt.dat

延伸閱讀:apt.dat檔案規格地景編輯器wed手冊

3. .obj 檔

obj檔是很常見的3d物件副檔名格式,在XP地景開發主要可以使用blender進行建模。

地景包中的obj物件,.dds則是提供物件上色用途(有時候會是.png格式)

延伸閱讀:obj檔維基百科

4. objects library與library.txt

既然提到了obj以及物件導向,就不得不提一下多數在開發及地景安裝時會碰到的問題:library。

什麼是objects library呢?

objects library就像一個素材庫,裡面提供了各種”萬用”物件,比方說:機場標示牌、地勤車輛、三角錐、路人等等。常見的library有像OpenSceneryX、NAPS_Library、MisterX_library等等

OpenSceneryX中的b747-400樣板
同樣是地景包中b747-400的塗裝

這些library可以提供地景開發者一個很快速建模的選項,例如地景中停在機坪的飛機、空橋、地勤人員等,如果不使用library,開發者需要從頭開始一一建模、塗裝,所需要的開發時間會多上不少。而地景包中的Library.txt,則是用於告訴地景開發軟體說你有哪些物件,以及這些物件是由哪些.obj及.dds/.png所構成的。

OpenSceneryX地景包中的Library.txt內容
在使用wed開發地景時,直接import library以後就可以直接使用,非常便利的設計

延伸閱讀:library.txt檔的規格

TAGGED:
Share This Article