Как повернуть меш вокруг центра своей оси?
Читал книгу Ф.Луны у него там есть пример с поворотом камеры вокруг своей оси с помощью функции D3DXMatrixRotationAxis - попробовал на простом квадрате - нечего не преобразуется квадрат вертится вокруг левого ребра, в ручную я конечно могу найти центр у квадрата и трансформировать вершины как мне нужно, но вот что делать когда мешь не стандартная, например какая-нить краказябра, загруженная с .Х файла с тучей полигонов, как ее вертеть вокруг центра своей оси?
Duracell
> квадрат вертится вокруг левого ребра
А где у квадрата нулевая точка?
Duracell
> Читал книгу Ф.Луны у него там есть пример с поворотом камеры вокруг своей оси с
> помощью функции D3DXMatrixRotationAxis
Так сложно взять DXSDK и покопать примеры ?
что такое центр оси?
Duracell
> Как повернуть меш вокруг центра своей оси?
если пользовать стандартные методы и математику то объекты крутятся вокруг своей опорной точки, а точка эта всегда находится в 0,0,0(в 3дмаксе можно все прекрасно рассмотреть).
Misanthrope
> что такое центр оси?
>
если например взять квадрат с координатами вершин(0,0,0), (0,1,0), (1,1,0), (1,0,0) - то центр будет проходить через (0.5f, 0,0)
Duracell
Центр всегда в нуле, пока ты не указал обратного.
-Eugene-
> Центр всегда в нуле, пока ты не указал обратного.
Как указать обратное?
Duracell
Сдвинуть модель в другую точку. Либо в редакторе, либо матрицей переноса при отрисовке.
Duracell
> Как указать обратное?
Разобраться с линейной алгеброй, матрицами, векторами, матричными преобразованиями и т.п.
Duracell
> Как повернуть меш вокруг центра своей оси?
задать меш таким образом чтобы его центром был 0,0,0
Duracell
> через (0.5f, 0,0)
через (0.5f, 0.5f, 0)
возьми квадрат с координатами вершин(-0.5f, -0.5f, 0), (-0.5f, 0.5f, 0), (0.5f, 0.5f, 0), (0.5f, -0.5f, 0)
Моделируй в модельных координатах, относительно центра, который как правило находятся внутри модели. Кракозябры желательно должны быть изначально в таких координатах. Далее тупо трансформации.
Тема в архиве.