Войти
ПрограммированиеФорумГрафика

вращение меши вокруг центра своей оси

#0
11:01, 9 фев. 2016

Как повернуть меш вокруг центра своей оси?
Читал книгу Ф.Луны у него там есть пример с поворотом камеры вокруг своей оси с помощью функции D3DXMatrixRotationAxis - попробовал на простом квадрате - нечего не преобразуется квадрат вертится вокруг левого ребра, в ручную я конечно могу найти центр у квадрата и трансформировать вершины как мне нужно, но вот что делать когда мешь не стандартная, например какая-нить краказябра, загруженная с .Х файла с тучей полигонов, как ее вертеть вокруг центра своей оси?


#1
11:27, 9 фев. 2016

Duracell
> квадрат вертится вокруг левого ребра
А где у квадрата нулевая точка?

#2
11:37, 9 фев. 2016

Duracell
> Читал книгу Ф.Луны у него там есть пример с поворотом камеры вокруг своей оси с
> помощью функции D3DXMatrixRotationAxis

Так сложно взять DXSDK и покопать примеры ?

#3
14:00, 9 фев. 2016

что такое центр оси?

#4
14:09, 9 фев. 2016

Duracell
> Как повернуть меш вокруг центра своей оси?
если пользовать стандартные методы и математику то объекты крутятся вокруг своей опорной точки, а точка эта всегда находится в 0,0,0(в 3дмаксе можно все прекрасно рассмотреть).

#5
15:33, 9 фев. 2016

Misanthrope
> что такое центр оси?
>
если например взять квадрат с координатами вершин(0,0,0), (0,1,0), (1,1,0), (1,0,0) - то центр будет проходить через (0.5f, 0,0)

#6
15:45, 9 фев. 2016

Duracell
Центр всегда в нуле, пока ты не указал обратного.

#7
8:59, 10 фев. 2016

-Eugene-
> Центр всегда в нуле, пока ты не указал обратного.
Как указать обратное?

#8
9:05, 10 фев. 2016

Duracell
Сдвинуть модель в другую точку. Либо в редакторе, либо матрицей переноса при отрисовке.

#9
9:06, 10 фев. 2016

Duracell
> Как указать обратное?

Разобраться с линейной алгеброй, матрицами, векторами, матричными преобразованиями и т.п.

#10
10:49, 10 фев. 2016

Duracell
> Как повернуть меш вокруг центра своей оси?
задать меш  таким образом чтобы его центром был 0,0,0

#11
13:23, 10 фев. 2016

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)

Моделируй в модельных координатах, относительно центра, который как правило находятся внутри модели. Кракозябры желательно должны быть изначально в таких координатах. Далее тупо трансформации.

ПрограммированиеФорумГрафика

Тема в архиве.