У меня есть движок рендеринга C ++ DirectX9 с Y в качестве оси вверх. Когда я импортирую модель, которая была смоделирована с Z в качестве оси вверх, я просто меняю значения Y и Z всех вершин модели, чтобы модель была правильно ориентирована. Это работает хорошо, за исключением того факта, что порядок намотки большинства (не всех) ячеек неправильный.
Поскольку я рендерил модель с включенным отбраковкой лицевой стороны, внешняя оболочка моделей не видна, а внутренние оболочки видны.
Я перевернул индексы в попытке исправить проблему, и она работает нормально … но, поскольку не все модели страдают от одного и того же неправильного порядка намотки, я сижу с половиной моделей с правильными порядками намотки, а другая половина с неправильными порядками намотки.
Поэтому я предполагаю, что мой вопрос заключается в следующем: как правильно преобразовать 3d-модель с Z в качестве оси вверх в 3d-модель с Y в качестве оси вверх без нарушения порядка намотки в процессе.
Заранее спасибо.
Порядок намотки неверен, если вы не сохраняете управляемость своей системы координат. Как правило, (x, y, z) представляет собой ПРАВИЛЬНУЮ систему координат: то есть, если вы направите свой большой палец правой руки в направлении + x и указательный палец правой руки в направлении + y, естественно скручивая остальные три пальца, они должен указывать в направлении + z. Возможно, вы перевернули свои координаты таким образом, что система сменилась с правой на левую. (x, y, z) можно изменить на (y, z, x) или (z, x, y), но другие перестановки покажут неправильную намотанность.
Других решений пока нет …