Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Вниз

Оптимизация.   Найти похожие ветки 

 
@!!ex ©   (2007-01-11 00:03) [0]

Есть кости:

1 - парент 2,
2 - парент 3

Положение кости задается перемещением и вращением(углы Эйлера) относительно парента.
нужно убрать кость 2, соответственно 3 кость уже будет относительно 1.
Самое логичное - построить матрицу преобразования второй кости и умножить ее на матрицу преобразования 3 кости, потом оттуда вытащить перемещение и вращение.
Но!
Углы Эйлера в части случаев однозначно не определяются!
НЕ знаю что делать... Есть идеи?


 
@!!ex ©   (2007-01-11 00:08) [1]

вот пикча
http://afera-net.narod.ru/joints.bmp


 
ors_archangel ©   (2007-01-11 02:16) [2]

[0] А через формулы никак не выразить?
[1] А jpg никак не сделать?


 
@!!ex ©   (2007-01-11 09:33) [3]


> [0] А через формулы никак не выразить?

Можно. Только бы знать еще эти формулы. :))


> [1] А jpg никак не сделать?

Каюсь, ступил.


 
ors_archangel ©   (2007-01-13 17:12) [4]

Если проблема ещё актуальна, то можешь уточнить, как child-кость поворачивается относительно parent-кости по углам Эйлера: каково её изначальное положение - сонаправлено оси что ли? Если, допустим, сонаправлено, то по оси X ей вращаться бесполезно? Чем положение кости вообще в конечном итоге задаётся, я правильно понял, центр + поворот?


 
@!!ex ©   (2007-01-14 01:10) [5]

изначально ее положение - вращение(0,0,0) и перемещение(0,0,0).
Для каждой кости задается локальная матрица:
Устанавливаем в матрицу углы и перемещение.
Потом считаем глобальную матрицу, относительно Т0 уже.
Глоабальная матрица расчитывается так:
если нет парента, то ее глобальная матрице равна локальной.
Если парент есть, то
1) Глобальной матрице чилда присваевается гл. матрица парента.
2) Глобальная матрица чилда умножается на ее же локальную матрицу.

Вообщем расчет полностью аналогичен SMD, за исключением некоторых незначительных мелочей.


 
Леон ©   (2007-01-14 13:24) [6]

1. <quote> потом оттуда вытащить перемещение и вращение. </quote>
имхо, это невозможно.. да и не нужно (glMultMatrix должна помочь)
2. <quote>Углы Эйлера в части случаев однозначно не определяются!</quote>
возможно, помогут кватернионы (Кватернионы и 3-х мерные повороты. http://karataev.nm.ru/quat3rot/file3.html статья могла переместиться..)


 
@!!ex ©   (2007-01-14 18:29) [7]


> 1. <quote> потом оттуда вытащить перемещение и вращение.
>  </quote>
> имхо, это невозможно.. да и не нужно (glMultMatrix должна
> помочь)

Не нужно? :)) Серьезно чтоли? А в чем тогда смысл топика? :))
Поможет строчка на столбик.....
Я вообще не отображение пишу.....
Мне нужно исключить из файлика лишние кости......
А в файлике все хрнаится именно в виде: вращение/перемещение


> 2. <quote>Углы Эйлера в части случаев однозначно не определяются!
> </quote>
> возможно, помогут кватернионы (Кватернионы и 3-х мерные
> повороты. http://karataev.nm.ru/quat3rot/file3.html статья
> могла переместиться..)

Каким образом тут могут помочь кватернионы?


 
ors_archangel ©   (2007-01-14 21:38) [8]

Что плохого в неоднозначности в случае с анализом матрицы?


 
@!!ex ©   (2007-01-14 23:18) [9]


> ors_archangel ©   (14.01.07 21:38) [8]

Имеем неоднозначность => не знаем чему равны углы.



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
2-1203922619
Настёна
2008-02-25 09:56
2008.03.23
ОС перезагружается!


15-1202477158
ПЛОВ
2008-02-08 16:25
2008.03.23
Есть ли уже подобное средство...


11-1185952611
nikfel
2007-08-01 11:16
2008.03.23
Подобие кнопки в стиле XP.


2-1203870038
Igor23
2008-02-24 19:20
2008.03.23
ExcelXP


2-1203928808
User123
2008-02-25 11:40
2008.03.23
procedure TForm1.Edit1Change(Sender: TObject);





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский