Prendre le centre de votre vCenter objet. L'objet a une largeur et une hauteur de (w, h).
D'abord, vous avez besoin de votre caméra pour le vecteur d'affichage. Ceci est calculé comme vCamToCen = normalize (vCamera - vCenter).
Vous avez alors besoin d'un vecteur d'approximation approprié. Cela peut être extrait à partir de la matrice de vue (facilement décrite here, c'est-à-dire la deuxième colonne). Vous pouvez ensuite calculer le vecteur latéral en faisant vSide = vCamToCen x vUp. Calculez ensuite le vecteur REAL en faisant vUp = vCamToCen x vSide. Où «x» est un produit croisé.
Vous avez maintenant toutes les informations dont vous avez besoin pour faire votre billboard.
Vous pouvez ensuite former vos 4 verts comme suit.
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;
Construisez vos 2 triangles sur les passer et verts à travers votre pipeline normal (avec vue normale et les matrices de projection).