vUp = Y-Achse der Kamera
vKameraDir = Z-Achse der Kamera, (oder auch Kameraachse)
D3DVEKTOR_vPosition; // Mittelpunkt des Sprite
vUp = D3dVektorNormalisieren(vUp); // Y-Achse des Sprite
D3DVEKTOR_vKamera = D3dVektorNormalisieren(vKameraDir);
// Keuzprodukt aus Kameraachse Z und Kameraachse Y
// wird zu Spriteachse X
D3DVEKTOR_vX=D3dVektorNormalisieren(D3dVektorKreuzprodukt(vKamera,vUp));
// 4 Vektoren werden Berechnet und anschließend zum Mittelpunkt
// addiert, was dann die 4 Vertex des Sprite bildet
D3DVEKTOR_vLefTop=D3dVektorAddieren(vUp,D3dVektorFill(-vX.x,-vX.y,-vX.z));
D3DVEKTOR_vLefBot=3dVektorAddieren(D3dVektorFill(-vUp.x,-vUp.y,-vUp.z),D3dVektorFill(-vX.x,-vX.y,-vX.z));
D3DVEKTOR_vRigTop=D3dVektorAddieren(vUp,vX);
D3DVEKTOR_vRigBot=D3dVektorAddieren(D3dVektorFill(-vUp.x,-vUp.y,-vUp.z),vX);
// vPos = vPospition +(....*fSize)
mSprite[0].vPos=D3dVektorAddieren(vPosition,D3dVektorScalieren(vLefTop,pCurrentPartikel->fSize));
mSprite[1].vPos=D3dVektorAddieren(vPosition,D3dVektorScalieren(vLefBot,pCurrentPartikel->fSize));
mSprite[2].vPos=D3dVektorAddieren(vPosition,D3dVektorScalieren(vRigTop,pCurrentPartikel->fSize));
mSprite[3].vPos=D3dVektorAddieren(vPosition,D3dVektorScalieren(vRigBot,pCurrentPartikel->fSize));
// Zeichnen
g_pD3DDevice9->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,2,mSprite,sizeof(S_VERTEX_SPRITE));