<<< BitVektor >>>

Hallo, Freunde der 3D-Spieleprogrammierung!

 

Wenn Ihr in C++ programmiert und Lösungen, Funktionen, Methoden, Tips und Tricks zur Entwicklung einer eigenen 3D-Engine sucht, seid Ihr hier genau richtig. Ihr werdet alles finden, was man im Allgemeinen braucht, um komplette Spiele zu schreiben. Aber Vorsicht: Die Seite ist speziell für Pragmatiker ausgelegt, die schnell zu einem Ergebnis kommen wollen. Die graue Theorie hinter den vorgestellten Lösungen wird hier stark vernachlässigt. Wer sich mit den genauen mathematischen Hintergründen befassen will, der findet auf anderen Seiten und auch in der Literatur genügend Informationen. Hier geht es um den schnellen Spass, sozusagen um Programmer's Quicki. Also viel Spaß!

Noch Eines: Heute ist der 18.09.2011 und die Seite ist nagelneu. Im Prinzip fehlt noch alles. Also immer mal wieder reinschauen!

Hier mal eine erste Funktion:

D3DGetScreenPost (...) liefert die Position eines Vektors in Bildschirmkoordinaten. Braucht man, um z. B. eine 2D-Explosion auf ein 3D-Objekt zu plazieren.

//------------------------------------------------------------------------
//       D3DGetScreenPos ()
//------------------------------------------------------------------------
void D3DGetScreenPos (D3DXVECTOR3 *vScreenPos, D3DXVECTOR3 *vObjectPos)
  {
  D3DXVec3Project (vScreenPos, vObjectPos, &pViewport, &matProjection, &matCamView, NULL); 

  if (vScreenPos->z >= 1.0f)
    {
    vScreenPos->x = -1000.0f;
    vScreenPos->y = -1000.0f;
    }
  }