Render.ru

Матрица объекта...

Лена Польская

Пользователь сайта
Рейтинг
2
#1
Добрый день! :)

Прочитал очень интересную статью на этом сайте (Нюансы при экспорте из 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. Предположим получили эту матрицу объекта, она будит с учетом с учетом родителей или без?
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
Neomix, все перепутал.
Статья написана для разработчиков плагинов, и функции там API`шные из SDK.

b.transform готовый трансформ в мировом пространстве больше ничего не нужшо с ним делать

Читай хелп maxscript.


>3. Как можно инвертировать матрицу узла (что делать если она не квадратная)?
Ищи раздел матрицы
>Не понятно вот еще что: помножить ее справа? (полный стопор...)
Право право и есть, сторона такая =) Сено, солома
Предположим получили эту матрицу объекта, она будит с учетом с учетом родителей или без?
b.transform - в мировом пространстве (а не в пространстве родителя)
 

Лена Польская

Пользователь сайта
Рейтинг
2
#3
Savin Denis - сильно не серчай. :)

Я еще новичок в maxscript-e, а в английском не так сильно силен к сожилению... :-(

Так правельно я понял что b.transform и есть получение матрицы объекта?
 
Сверху