- Рейтинг
- 2
Добрый день!
Прочитал очень интересную статью на этом сайте (Нюансы при экспорте из 3DS MAX - большой респект автору!), вроде все понятно и хорошо, и все нюансы взял на заметку... Но, вот получилась заминка...
Цитата из статьи:
Напрямую получить матрицу объекта невозможно. Можно получить матрицу преобразования геометрии в мировое пространство (INode->GetObjectTM()), и помножить ее справа на инвертированную матрицу узла.
Ряд вопросов который для меня темный лес, но хотел бы их разобрать более подробно.
1. GetObjectTM() - в ответ на такую функцию вернулась ошибка (3ds max 2011, получается что нет этой функции):
$Box:Box005 @ [0.000000,0.000000,0.000000]
-- Error occurred in anonymous codeblock; filename: E:\Downloads\Work\Script for 3dsmax\; position: 22; line: 2
-- Type error: Call needs function or class, got: undefined
Как я решил проблему:
Ввел:
b=box()
b.transform
В ответ получил ту самую (не уверен) про которую говорил автор, матрицу преобразования геометрии в мировом пространстве:
$Box:Box006 @ [0.000000,0.000000,0.000000]
(matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])
2. Матрицу узла получил без проблем как написано:
GetNodeTM $box006
В ответ вернулось:
(matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])
3. Как можно инвертировать матрицу узла (что делать если она не квадратная)?
4. Не понятно вот еще что: помножить ее справа? (полный стопор...)
5. Предположим получили эту матрицу объекта, она будит с учетом с учетом родителей или без?
Прочитал очень интересную статью на этом сайте (Нюансы при экспорте из 3DS MAX - большой респект автору!), вроде все понятно и хорошо, и все нюансы взял на заметку... Но, вот получилась заминка...
Цитата из статьи:
Напрямую получить матрицу объекта невозможно. Можно получить матрицу преобразования геометрии в мировое пространство (INode->GetObjectTM()), и помножить ее справа на инвертированную матрицу узла.
Ряд вопросов который для меня темный лес, но хотел бы их разобрать более подробно.
1. GetObjectTM() - в ответ на такую функцию вернулась ошибка (3ds max 2011, получается что нет этой функции):
$Box:Box005 @ [0.000000,0.000000,0.000000]
-- Error occurred in anonymous codeblock; filename: E:\Downloads\Work\Script for 3dsmax\; position: 22; line: 2
-- Type error: Call needs function or class, got: undefined
Как я решил проблему:
Ввел:
b=box()
b.transform
В ответ получил ту самую (не уверен) про которую говорил автор, матрицу преобразования геометрии в мировом пространстве:
$Box:Box006 @ [0.000000,0.000000,0.000000]
(matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])
2. Матрицу узла получил без проблем как написано:
GetNodeTM $box006
В ответ вернулось:
(matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])
3. Как можно инвертировать матрицу узла (что делать если она не квадратная)?
4. Не понятно вот еще что: помножить ее справа? (полный стопор...)
5. Предположим получили эту матрицу объекта, она будит с учетом с учетом родителей или без?