Aber
OpenGL bietet meines Wissens keine Funktion, die eine Matrix erzeugt, die eine Rotation um eine beliebige Achse durchführt! Das wäre daher von Hand zu erledigen, wiederum nicht ganz trivial.
Die Alternative zu deinem Animationssystem (abgesehen von der Möglichkeit, die Matrizen mit den Vertexdaten zu speichern) liegt doch auf der Hand: Anstatt Knochen-Keyframes zu speichern, speicherst du Keyframes des gesamten Models. Macht zum Beispiel Quake 3 so. Dann schenkst du dir den ganzen Knochenkram, der ohne analytische Geometrie wie du siehst nicht ganz einfach ist. Da das sehr aufwändig ist, werde ich dir auch keine fertigen Formeln geben (weil ich keine hab' (c; ), so dass du entweder die Formeln selbst erarbeiten musst (der Link oben von mir gibt da wie gesagt reichlich Hilfe, ebenso jede mathematische Formelsammlung), ein vorgefertigtes Animationssystem verwendest (wie z.B. das md3-Format oder das X-Format, die du überall erklärt findest) oder dir ein eigenes neues überlegst. Ansonsten, wenn du es weiterhin so machen willst wie bisher, dann:
Lerne was ein Skalarprodukt ist.
Lerne was ein Kreuzprodukt ist.
Mit etwas Nachdenken kommst du dann schon zu den Formeln, aber diese beiden Teile sind so elementar, dass keine 3D-Engine ohne auskommt. Selbst wenn du sie nicht aktiv benutzt, denn z.B. die Lichtberechnung ist nichts weiter als ein Skalarprodukt des Lichtvektors mit dem Normalenvektor der Oberfläche.
Weil du's bist, gebe ich dir nochmal den Link:
http://www.jtl-software.de/3d_grund.html
Da steht was ein Kreuzprodukt ist, was ein Skalarprodukt ist und wie du einfache Matrizen erzeugst. Und es ist auch für jemanden verständlich, der von Tuten und Blasen (oder vielmehr Vektoren) keinen blassen Schimmer hat. Also bitte ich dich nochmal, lies diesen Text durch, verstehe ihn und dann kannst du wiederkommen
Es steht wirklich alles drin, was du für die besagten drei Drehwinkel brauchst, wie ich es etwas weiter oben beschrieben habe, aber ohne diese Grundbegriffe werde ich es dir kaum näher erklären können.