При детальном рассмотрении выше переведенное оказалось чуть более чем бредом.
Как выше сказано, теперь путь - это бинарное дерево. Каждый элемент дерева имеет следующую структуру:
Код:
mesh ""
subdivisions 1
lod-distance 0.0
lod-length 0.0
lod-tessellation-length 0.0
lod-random-bias 0.0
high-detail
{
}
low-detail
{
}
Внутри контейнера может быть
ссылка на меш из mesh-table (в поле mesh "", а не в коем случае не указание на имя файла) или разделяться в 2 таких же элемента дерева внутри субконтейнеров high-detail и low-detail (т.е. применяется рекурсия).
Учитывая это у нас есть 2 варианта развития:
- Mesh Node/Указание на модель
Указывается меш из mesh-table, и он используется всегда, когда до него доходит дело.
Код:
subdivisions 1
mesh "track-lod2"
Тэг subdivisions указывает сколько раз повторить меш (зависит от длины текущего меша и длины родительского контейнера).
- Branch Node/Подветвь дерева
Подветвь указывает high-detail и a low-detail элементы, и дает иформацию и право тс-у выбрать, какой именно прорисовать.
Код:
subdivisions 4
lod-distance 100.0
lod-length 10.0
lod-tessellation-length 6.0
high-detail
{
..
}
low-detail
{
..
}
Каждый из субконтейнеров high-detail и low-detail содержит очередной элемент дерева (см самый верх поста).
Тэг subdivisions разделяет обрабатываемый участок пути на несколько частей, каждая из которых продолжит обработку по структуре дерева, начиная с текущего положения. Каждая из этих частей независима, и вердикт ей выностится на основании кривизны пути в текущей точке и уровня детализации.
Тэг lod-distance указывает с какого расстояния будет применяться незкодетализированная ветвь древа (тобишь low-detail). Она не статична, и на нее влияют настройки производительности в ТС.
Участки пути подбираются к длине всего отрезка учитывая тэг mesh-length. Тэг lod-length форсирует прорисовку по высокодетализированной ветви, ели отрезок пути по длине меньше чем указанное в тэге. Этот тэг должен быть использован в исключительных случаях, так как он может сровнять с землей всю схему лодов и убить всю производительность.
Trainz determines a desired tessellation length based on factors which include the ground bumpiness and the bend angle of the spline. The lod-tessellation-length tag provides a mechanism for forcing the high-detail path for track parts with high tessellation requirements. The length (m) specified in this tag refers to the distance between tessellation points in the mesh, not to the whole length of the mesh. For example, a lod-tessellation-length of 6.0 indicates that the low-detail path is suitable for tessellation at around six meters, whereas the high-detail path is required for tessellation finer than six meters. The high detail path in this case should generally look identical to the low detail path, but with slightly increased tessellation along the Y-axis. This allows Trainz to increase tessellation without the cost of changing to an actual high detail mesh.
Здесь пока перевести проблемно.
В идеале тэг lod-tessellation-length должен быть указан как можно глубже в древе, так как на разбиение влияет множество факторов, и чем более их учтено до окончательного решения (которое происходит как только тэг встречается) тем более точнен будет итоговый результат.
Тэг lod-random-bias - случайный показатель. При значении 1.0 всенда выбирается высокая детализация, при 0.5 - 50/50 (с учетом описанных lod-* тэгов), а при 0.0 не оказывает никакого влияния. Не рекомендуется к применению.