Здесь поворот идет камеры, а мне надо фигуры..... можешь весь исходник кинуть, если не трудно я уже запутался.....
|
Ты не прав. Поворот( точнее преобразование ) будет именно того что ты укажешь вызовом
device->SetTransform( ... )
Например
device->SetTransform( D3DTS_WORLD, &matrix )
Задаст преобразование которое применится к отрисовываемому объекту( device->DrawIndexedPrimitive, device->DrawPrimitive и т.д. )
Преобразование
device->SetTransform( D3DTS_VIEW, &matrix )
задает дополнительное преобразование вида( камеры ). В DirectX преобразования вынесены в отдельные матрицы, в OpenGL же есть матрицы GL_MODELVIEW - тут две матрицы( видовая и мировая ) уже объединены в одну.
Вообще же приведенный выше код будет работать и для камеры и для объекта.
Для объекта код будет таким, каким я привел его выше.
Для камеры все то же самое, только вызов
device->SetTransform( D3DTS_WORLD, &out );
Заменяется на
device->SetTransform( D3DTS_VIEW, &out );
А общий порядок операций примерно такой
device->SetTransform( D3DTS_WORLD, &worldMatrix );
device->SetTransform( D3DTS_VIEW, &viewMatrix );
device->DrawPrimitive( ... )
В таком варианте при отрисовке задействуются только что установленные матрицы.
Вообще DX и OGL это что-то типа конечного автомата( FFP часть естественно - на то она и Fixed Function Pipeline
). Тоесть задаешь какие-то определенные свойства всему конвееру и видеокарта производит отрисовку именно с такими параметрами.
И да исходника не будет, я для тебя написал приведенный выше кусок кода.
Ну вот вроде и все. Если где ошибся не серчайте.