Есть ли способ использовать worldMatrix каждого объекта?
Матрицу объекта можно представить так:
objx.x objx.y objx.z 0 //m[0][0]..m[0][3] or _11, _12, _13, _14
objy.x objy.y objy.z 0 //m[1][0]..m[1][3] or _21, _22, _23, _24
objz.x objz.y objz.z 0 //m[2][0]..m[2][3] or _31, _32, _33, _34
objpos.x objpos.y objpos.z 1 //m[3][0]..m[3][3] or _41, _42, _43, _44
Где m[][]
и _11
.. _44
- соответствующие элементы D3DMATRIX
, objpos - вектор положения объекта, objx - вектор объекта x ("локальный x" преобразован в мировое пространство) и т. Д.
Так что, покапоследний столбец (m [0..3] [3]) равен 0, 0, 0, 1, вы можете извлечь позицию объекта и его векторы "x", "y", "z" ("side", "up","front" - это зависит от приложения) из матрицы. Если последний столбец не "0, 0, 0, 1", то это матрица проекции, и вы не можете легко извлечь из нее данные объекта.
Оттуда вы можете делать с камерой все, что захотите.