В центре вашего объекта vCenter. Объект имеет ширину и высоту (ш, ч).
Во-первых, вам нужна ваша камера, чтобы вывесить вектор. Это рассчитывается как vCamToCen = normalize (vCamera - vCenter).
Затем вам нужен соответствующий грубый вектор. Это может быть извлечено из матрицы вида (удобно описанной здесь , то есть из второго столбца). Затем вы можете рассчитать побочный вектор, выполнив vSide = vCamToCen x vUp. Затем вычислите REAL up vector, выполнив vUp = vCamToCen x vSide. Где «х» - это перекрестное произведение.
Теперь у вас есть вся информация, необходимая для рекламы.
Затем вы можете сформировать свои 4 верта следующим образом.
const float halfW = w / 2.0f;
const float halfH = h / 2.0f;
const D3DXVECTOR3 vHalfSide = vSide * halfW;
const D3DXVECTOR3 vHalfUp = vUp * halfH;
vertex[0].pos = vCenter;
vertex[1].pos = vCenter;
vertex[2].pos = vCenter;
vertex[3].pos = vCenter;
vertex[0].pos -= vHalfSide;
vertex[0].pos -= vHalfUp;
vertex[1].pos += vHalfSide;
vertex[1].pos -= vHalfUp;
vertex[2].pos += vHalfSide;
vertex[2].pos += vHalfUp;
vertex[3].pos -= vHalfSide;
vertex[3].pos += vHalfUp;
Создайте свои 2 треугольника из этих вершин и пропустите их через конвейер как обычно (т.е. с вашим обычным видом и матрицами проекции).