Puh, Ich weiß nicht mehr soviel aus dem Fach Vektorgeometrie, aber du kannst mit dem Kreuzprodukt den Normalenvektor berechnen. Der Normalenvektor steht senkrecht zu den zwei Vektoren aus dem Kreuzpodukt (z.B der Boden eines Hauses) Du brauchst jetzt nur noch den Normalenvektor deines Objektes und kannst du mit arccos( [a1 * a2] / [|a1| *|a2| ) den winkel zwischen den beiden Normalenvektoren berechen. Danach musst du nur noch dein Objekt dem entsprechend drehen. Bei einem Würfel hast du es noch einfach, da kannst du einfach das obere bzw. das untere Rechteck benutzen um den Normalenvektor zu berechnen, aber bei komplexen Objekten wird das wohl nicht möglich sein. Da könntest du einen Normalenvektor festlegen (bei einer Menschenfigur) oben am Kopf anfängt und dann parallel zur Z-Achse verläuft.
Ob es jetzt einen einfacheren Weg mit Hilfe einer Funktion der Irrlicht engine gibt weiß ich nicht.
p.s.: Alle Angaben ohne Gewähr. Ich bin etwas eingerostet.
mfg
|