Тема: getMathElement()
Показать сообщение отдельно
Старый 01.06.2012, 08:37   #6
Платон Александрович
Нуждающийся
 
Аватар для Платон Александрович
 
Регистрация: 05.10.2011
Адрес: Россия, Южно-Сахалинск
Сообщений: 66
Написано 42 полезных сообщений
(для 83 пользователей)
Ответ: getMathElement()

Сообщение от Diablo1909 Посмотреть сообщение
так я не понял... а какого фига они глобальны ? Ведь система обьектов предпологает, что вся инфа о трансформациях должна хранится в относительных координатах ( относительно родительских ). Тогда в чем вообще их смысл ?

Я же считал, что извлечение глобыльных параметров происходит за счет перебора всех родителей.
Не совсем так. Когда меняется координаты\угол ентити, происходит отложенный перерасчет матриц его самого и его чайлдов. Т.е. там флажок который указывает что трансформации надо перерасчитать. Это делается либо по необходимости (например тем же самым вызовом GetMatElement) до рендера, либо непосредственно перед ним, чтобы получить глобальную матрицу для каждого ентити. Эта матрица и передается в Direct3D для трансформации вершин. GetMatElement возвращает элементы этой матрицы.
Подробнее можно посмотреть в исходниках miniB3D, там в файле geom.h почти вся 3д математика. А устройство иерархии (впрочем и geom.h там же) в исходниках sdk.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Черный крыс (01.06.2012)