Ща попробую... только есть настойчивая мысля (ее тож проверю):
Тангенты для плоских дорог и вообще плоскостей можно не считать, достаточно раздать всем вертексам копию одного и того же тангента, заданного вручную...
Ну, да, хреначьте в массив тангентов, скажем, вектор (-1.0, 0.0, 0.0, -1.0) и больше ничего не нужно.
Знаки тут определяют направление построения патча развертки, вероятно, у меня в плашке с этим проблема, потому и "минус" вылез. В любом случае, если нормал неправильно обработает источник света, просто замените знак четвертой компоненте.
Да, насчет значений... единички и нули придется подобрать вручную, в зависимости от алгоритма построения дороги.
Если дорога строится вперед (+Z), и ювишки мапят дорогу сверху вниз (+V совпадает с +Z) и в том же направлении, что и построение вертексов, похоже, тангент-вектор будет типа такого:
- Код: Выделить всё
Vector4 ( 0.0, 0.0, -1.0, 1.0);
Можно и не вручную, конечно, если найти локальный вектор между вертексом с uv == ( i, j) и вертексом с uv == ( i, k ), где k > j, или, что еще проще - между любыми вертексами-соседями, что формируют ширину дороги (если у вас мэппинг сверху вниз).