Trainz/refs/texture.txt 檔案
以 *.texture.txt 為字尾和副檔名的文字檔案被用作幾乎所有資產中指定圖形檔案選項和流程的首選方法,包括那些採用包含烘焙紋理貼圖的較新技術網格,帶有法線和反射率(UV 貼圖)——因為它們的目的是配置 Trainz 中圖形紋理的行為。這些檔案還可以控制紋理如何被 內容管理器 處理,特別是透過提供 路徑規範,並觸發額外的驗證以最好地生成健康的資產。此外,帶有法線或 UV 貼圖的較新 LOD 網格集將有自己的 texture.txt 檔案來控制它們的應用。
這些檔案通常位於與紋理源影像檔案相同的資料夾中,通常是 .bmp、.tga 或 .jpg 檔案,因為 texture.txt 檔案的任務是引用它們並引導網格 (.im 檔案) 到它們,但 texture.txt 可以位於其他位置,因為它可以利用簡短的 DOS/Windows 檔案結構導航,在一個資料夾級別之外,但不超過兩個級別[注 1]。
|
實際上,texture.txt 檔案必須位於與尋找它的網格相同的資料夾中!。影像檔案可以被多個 texture.txt 檔案和網格引用共享。這些是控制檔案,由 Trainz 匯出器或匯入器自動生成(即來自 Gmax、Blender 和 AutoDesk 的 3dsMax 格式到 Trainz 資料需求的轉換器軟體——Auran/N3V 會不時更新這些軟體),但如果需要專業化,則可以手動編輯。
每個標記都指定在新的行上。在 '=' 符號兩側均沒有空格。空值有時有效。語法是
<token>=<value>
Texture.txt 檔案可以使用 C++ 'hack-hack' 註釋樣式進行註釋
// This file was created for TRS2006-SP1 then retrograded to trainz-build 2.0 for TRS2004
以下是支援標記的列表。任何其他值都不應使用。
- 此外,必須理解
- 網格和 texture.txt 檔案始終放在同一個資料夾中。
- 紋理(影像檔案)本身可以位於公共位置,並被資產的多個網格引用(蒸汽機車 8 個或更多網格需要多少個 black.tga 紋理?),但引用是透過 texture.txt 檔案進行的,其名稱必須與網格引用的名稱匹配。即網格引用texture.txt 檔案的名稱,該名稱不必與列為主要影像/紋理的實際影像/紋理的名稱匹配。
- 假設有一個公共紋理檔案,不同的網格名稱和/或位置,以及來自附加圖形的不同“外觀”
- 上述示例中八個網格中的四個每個都使用不同的名稱可以引用同一個紋理並使用相同的處理“標記”,但每個標記必須存在以支援它從 網格檔案中的引用。
- 剩下的兩個可能會引用一個完全不同的“black2.tga”。
- 而其他則引用同一個,但使用上面複合示例中展示的、下面詳細介紹的不同標記組合。
- 要掌握的要點是 texture.txt 檔案和網格檔案之間的 Onto 關係,以及紋理名稱和位置可能非常不同——它們沒有理由與網格或 texture.txt 檔案共置。後者負責將兩者結合起來並定義該網格渲染紋理影像的方式。
| 大多數 texture.txt 檔案只有兩到四行,如下面的左側和中間兩個示例。Alpha 通道資料通常由與列為主的相同檔案傳遞,如果影像型別支援此功能。大多數情況下是 BMP 和 TGA 檔案,深度為 32 位,儘管正在開發幾種其他現代型別。在最後一個示例中,前四行類似於中間示例。許多較舊的資產將沒有 AlphaHint 修飾符,也不支援其他擴充套件,例如下面右側所示的那些。 | ||
|
最常見的示例
|
下一個最常見的示例
|
複合示例
|
- 在下面,我們將展示同一部分中的“示例行”。並用括號“()”補充說明。
首先,我們提供這些示例,以便與上面的文字和下面的文字進行比較...
指定紋理檔名
- <紋理名稱> - 主紋理。包括副檔名的檔名,三個示例。
Primary=Whitehorse_pub.tga
- (此示例在非火車車廂資產中非常常見,也就是說,大多數物體、建築物、動物和樹木不與軌道連線或不打算在軌道上行駛。簡單軌道類資產 - 包括道路、電力線和圍欄 - 也具有這種簡單的定位方式。在帶有照明燈的杆和建築物(夜間模式)的情況下,通常會存在一個夜間或夜間模式子容器,這是早期資料模型實踐的一種方法。
Primary=PRR40'1910sBoxcar_body\PRR40'1910sBoxcar_body.tga
- (此示例在火車車廂資產中非常常見,許多內容創作者仍然遵循相同的實踐。早期的資料模型標準做法是至少有三個與資產檔名匹配的子資料夾,它們的副檔名分別為:'_art', '_body', & '_shadow'。這並不像看起來那樣奇怪,因為資產檔名標籤也必須是使用者名稱和資產的主要網格名稱。火車車廂是多網格物體,因此控制網格或參考網格位於根目錄中,並且主體網格和陰影網格從資產根目錄具有可預測的路徑,這可以節省從輸入錯誤中浪費的時間,並使事物更整齊。_art 資料夾支援涉及資產選擇或顯示的各種選單 (參見:{{TL|Railyard module]}).)
Primary=common_textures\Red-roof-tiles.tga
- (此資料夾\檔名引用意味著 MESH 位置在包含名為“common_textures”的子資料夾的資料夾中,因此網格可能位於資產的根資料夾中,CM 將在路徑“{{TBS|username|p=..\editing\username or ..\..\editing\username, in later practice wherein N3V tucks data into the ..\UserData folder, where \editing lives.[note 2]'”中開啟。)
Primary=..\green-siding.tga
- (MESH 位置位於子資料夾中,而“common_textures”位於上一級目錄中,可能是資產的根資料夾)
Primary=..\traincar_left_door\brass-window-trim.tga
- (MESH 位置可能位於“..\traincar_right_door\”中,它是包含“shared_texture”的相對資料夾的“兄弟資料夾”。兩者很可能都是“\traincar_asset-name_body”資料夾的子資料夾。此示例來自使用 Randall Whitepass Pullman 客車的測試,以及 brass.tga 紋理。)
指定紋理的 Alpha 通道。請注意,如果只有一個包含 RGB 和 A 通道的 32 位檔案,則仍然必須使用與“主紋理”中使用的相同名稱指定它。
- <紋理名稱> - Alpha 紋理,可以與主紋理相同或不同。
水平、垂直或同時對紋理地址進行環繞。否則紋理將被鉗制。
- <empty> - (預設) 不進行環繞
- s - 水平環繞
- t - 垂直環繞
- st - 水平和垂直同時環繞
紋理的維度數量。由於目前只支援二維紋理,因此這不是必需的。
- two - (預設) 二維
- cube - (不支援)
- volume - (不支援)
- one - (不支援)
CMP 使用的壓縮格式。如果未提供此格式,則將自動選擇格式。
- none - 不壓縮。警告:未壓縮的紋理會消耗大量記憶體並降低效能。
- dxt1 - 適用於不透明或 Alpha 遮罩紋理
- dxt3 - 如果紋理包含銳利對比度,則可以作為 Alpha 混合紋理的最佳選擇。請先嚐試 DXT5。
- dxt5 - 通常是 Alpha 混合紋理的最佳選擇
紋理使用提示,僅供內部使用。請注意,此提示不應用於嘗試停用 Mip 對映。
- static - (預設) 標準紋理資源
- dynamic - 紋理將在記憶體中進行修改
有關紋理是否為法線貼圖的提示。使用此提示非常重要,因為它會影響最終的紋理質量。壓縮、Mip 對映生成和 XYZ (RGB) 的重新規範化都會受到影響。
- none - (預設) 這不是法線貼圖
- normalmap - 這是一張法線貼圖
允許在讀取 texture.txt 檔案時修改紋理。目前,這允許將綠色通道(Y 軸)翻轉以用於法線貼圖。
- none - (預設) 不修改紋理
- flipgreen - 翻轉綠色通道,即法線貼圖的 Y 軸
指定 Alpha 通道的使用方式。影響最終的 Alpha 質量。也可能影響紋理壓縮和 Mip 生成。
- opaque - (預設,沒有 Alpha 時) 不使用 Alpha 通道。
- semitransparent - (預設,有 Alpha 時) Alpha 混合
- masked - Alpha 遮罩 - 這會提供 8 位灰度陰影,從完全透明到根據 Alpha 通道或遮罩的逐畫素值完全阻止物體。
|
各向異性取樣質量。數值越高,視覺質量越好,但效能成本也會顯著提高。如果需要紋理質量,請指定更高的值。Trainz 現在可以透過滑塊控制各向異性,因此預設情況下使用最高設定。
- 1 - 不進行各向異性過濾
- 2 - 低
- 4 - 中等
- 8 - 高
- 16 - (預設) 極高
自動 Mip 對映生成。Chris,這已棄用嗎?CMP 現在以最高質量生成 Mip 對映,而不是在遊戲載入/執行時生成。
- none - 不生成 Mip 對映
- default - (預設) 任何預設方法
- fastest - 嘗試以犧牲質量為代價提高載入時間
- nicest - 嘗試提高質量,無論時間如何
紋理放大時使用的紋理取樣過濾器
- nearest - 不與相鄰紋素進行混合
- linear - (遊戲預設) 與相鄰紋素進行混合,以獲得平滑的縮放效果
- default - (預設) 遊戲預設設定
紋理縮小時使用的紋理取樣過濾器
- nearest - 不與相鄰紋素進行混合
- linear - (遊戲預設) 與相鄰紋素進行混合,以獲得平滑的縮小效果
- default - (預設) 遊戲預設設定
Mip 對映選擇時使用的紋理取樣過濾器
- nearest - 不與其他 Mip 對映進行混合
- linear - (遊戲預設) 在 Mip 對映之間進行平滑混合 (注意,獨立執行,但應與各向異性取樣一起使用)
- default - (預設) 遊戲預設設定
- none - 在 CMP 中停用 Mip 對映生成,並在遊戲中使用。專門用於使用者介面元素。
- Hint 即使是內部使用,也提到了它,因為自發現以來,它已經被好心人使用和濫用。Anisotropy 應用於提高紋理質量,而 MipFilter=none 應僅用於停用介面紋理的 mip 對映。
本參考資料頁面改編自 TrainzOnline Wiki,根據 CC-BY-SA 3.0 許可證。與 相同主題的源頁面 相比,本頁面可能包含更多文字解釋、闡述、歷史和/或示例。
TrainzOnline Wiki 主要由程式設計師或精通的 內容建立者維護,並且可能包含有關當前 trainz-build 程式碼 標準的最新和更詳細的資訊,這些標準在軟體新增功能時會發生變化。

