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 代码 标准的更新信息,这些标准随着软件功能的增加而发生变化。 |