Trainz/containers/track-lod-tree 容器
"track-lod-tree" 容器是 config.txt 檔案 中的頂級條目,由 kind track 使用。
track-lod-tree 是一種遞迴格式,描述了二叉樹結構。當拼接軌道幾何體時,Trainz 會將樣條曲線分解成更小的部分(由軌道的 mesh-length 標籤決定),然後解析 track-lod-tree 以確定使用哪個網格。
|
請注意,這個新的 Trainz 華夏公益教科書 主題頁面 粗糙且不完整。以未修改的形式呈現,等待在不久的將來進行補充和詳細說明。它 它最後編輯於 2015 年 5 月 15 日,以未修改的形式呈現,等待在不久的將來進行補充和詳細說明。它 仍在緊張建設中. 此頁面 正在建設中 此處的內容可能會在短時間內發生重大變化。所有 Trainzer 和 Wikibookian 歡迎參與幫助,分享這方面的知識。 您可以在此頁面變得更成熟時,移除此標籤並替換為 {{Trainz-stub}} 或使用部分存根模板({{Trainz-sect-stub}}) 在未完成的部分上。 |
track-lod-tree 中的每個節點都支援以下標籤。每個標籤在這裡都顯示了它的預設值。
mesh ""
subdivisions 1
lod-distance 0.0
lod-length 0.0
lod-tessellation-length 0.0
lod-random-bias 0.0
lod-is-surveyor 0
lod-season-index 255
high-detail
{
}
low-detail
{
}
每個節點可以從 mesh-table 容器 中選擇一個網格,也可以分支成兩個新的節點。
細分 標籤表明指定的資料將被用於多個重複。這究竟如何影響渲染取決於節點型別,並在下面詳細說明。Trainz 可以選擇在某些情況下只渲染一些重複,例如非常短的軌道長度——內容建立者不應該過度關注此方面的細節。
網格節點從 mesh-table 容器 中選擇單個網格,該網格始終使用。它不直接指定 .IM 格式檔案。
subdivisions 1 mesh "track-lod2"
細分 標籤導致網格重複指定的次數。
分支節點指定了 高細節 和 低細節 路徑,並提供資訊讓 Trainz 在它們之間進行選擇。
subdivisions 4
lod-distance 100.0
lod-length 10.0
lod-tessellation-length 6.0
high-detail
{
..
}
low-detail
{
..
}
高細節 和 低細節 路徑都是另一個 track-lod-tree 容器,導致這種結構是遞迴的。
- 細分 標籤會導致當前軌道部分被細分成多個部分,這些部分將繼續透過 track-lod-tree。每個部分都可能在樹中走不同的路徑,但是它們都從當前樹節點開始向下移動(即,它們不從樹的根部重新解析)。
- lod-距離 標籤決定了 Trainz 將切換到使用低細節路徑的距離(米)。此距離是一個指南,可能會受到使用者效能設定的影響。
- 軌道部分在一定程度上根據生成的軌道段的長度和 mesh-length 標籤進行縮放。lod-長度 標籤提供了一種機制,即使低細節路徑在距離上是合適的,也能強制在短的部分上使用高細節路徑。具體來說,如果生成的幾何體將小於 lod-長度 設定,則會選擇高細節路徑。使用此標籤時應格外小心,因為它有可能破壞 LOD 方案,從而降低效能。此標籤應僅用於在長(高效)低細節網格和多個短(效率較低)低細節網格之間進行選擇,絕不應強制更改為實際的高細節網格。
- Trainz 根據一些因素確定所需的細分長度,這些因素包括地面起伏和樣條曲線的彎曲角度。
lod-細分長度 標籤提供了一種機制,用於強制在具有高細分要求的軌道部分上使用高細節路徑。此標籤中指定的長度(米)指的是網格中細分點之間的距離,而不是網格的整個長度。例如,lod-細分長度 為 6.0 表示 低細節 路徑適用於大約六米的細分,而 高細節 路徑則需要小於六米的細分。在這種情況下,高細節路徑通常應該與低細節路徑看起來相同,但在 Y 軸方向上具有略微增加的細分。這使得 Trainz 可以增加細分,而無需更改為實際的高細節網格的成本。
- lod-細分長度 分支最好儘可能深地指定在 track-lod-tree 中,因為 Trainz 可能會在它遍歷樹的過程中細化此資料——在考慮細分之前設定的引數越多,細分過程越準確。
- lod-隨機偏差 並不是真正的 LOD 方案,而是允許在高或低“細節”路徑之間進行隨機選擇。在預設設定 0.0 時,它沒有影響。隨著數字向 1.0 升高,強制使用高“細節”路徑的機率增加。在 1.0 或更高時,始終會選擇高細節路徑。雖然此標籤可以與其他 lod-* 標籤一起使用,但行為有些任意,因此不推薦這樣做。值為 0.5 表示高和低“細節”路徑之間有 50% 的變化。
- lod-is-surveyor 實際上並非 LOD 方案,而是允許在 Surveyor(編輯模式)和 Driver(遊戲模式)中顯示不同的網格。當設定為“1”時,此標籤會在編輯模式下選擇高“細節”路徑。
- lod-season-index 實際上並非 LOD 方案,而是允許顯示季節性網格。當指定特定季節索引(根據 季節選擇器容器)時,此標籤會在該季節當前時選擇高“細節”路徑。
以下是一個簡單的 2 LOD 的軌道-lod-tree 容器,用於軌道資產。
track
{
mesh-length 20
track-lod-tree
{
lod-distance 250
high-detail
{
mesh "default-lod0"
}
low-detail
{
mesh "default-lod1"
}
}
}
以下示例說明了如何使用 季節選擇器容器 為軌道/樣條/道路選擇季節性網格(提供 lod-season-index 1 代表冬季)。
track
{
mesh-length 4
track-lod-tree
{
lod-distance 250
high-detail
{
lod-season-index 1
high-detail
{
mesh "track-lod0w"
}
low-detail
{
mesh "track-lod0"
}
}
low-detail
{
lod-season-index 1
high-detail
{
mesh "track-lod1w"
}
low-detail
{
mesh "track-lod1"
}
}
}
}
| 本參考頁面改編自 TrainzOnline Wiki,根據 CC-BY-SA 3.0 許可證。本頁面可能包含比 同一主題的源頁面 更詳細的文字解釋、說明、歷史和/或示例。 TrainzOnline Wiki 主要由程式設計師或經驗豐富的 內容創作者 維護,可能包含有關當前 trainz-build 程式碼 標準的更新資訊,這些標準隨著軟體功能的增加而發生變化。 |

