Normalenvektoren



  • Hallo,ich hoffe es stört euch nicht,dass ich schon wieder eine Frage stelle. 🙂

    Also,ein Normalenvektor Y der 1 beträgt und X und Z 0 betragen,wäre ja senkrecht nach oben(oder?).
    D.h. bei der gleichen Fläche mit einer Drehung von 45°auf der Z-Achse,wäre der X -und Y-Wert so ungefähr 0.7-0.75,oder so.Also das rechnet man ja mit Cosinus(sowie in anderen Berechnungen mit Sinus und Tangens)aus.
    Bin ich soweit richtig?

    Naja,dann hab ich noch die Frage,ob es den Computer zu sehr belasten würde,in jedem Schleifendurchgang die Normalen neu auszurechnen,da die Flächen ja fast immer rotieren?
    Denn wie wird es denn sonst gelöst?
    Denn für die Kollisonsberechnung brauch man ja die aktuellen Normalen.

    Danke. 🙂



  • coder++ schrieb:

    Also,ein Normalenvektor Y der 1 beträgt und X und Z 0 betragen,wäre ja senkrecht nach oben(oder?).
    D.h. bei der gleichen Fläche mit einer Drehung von 45°auf der Z-Achse,wäre der X -und Y-Wert so ungefähr 0.7-0.75,oder so.Also das rechnet man ja mit Cosinus(sowie in anderen Berechnungen mit Sinus und Tangens)aus.
    Bin ich soweit richtig?

    //Edit: Ich glaub ich hab dich falsch verstanden-------------
    Wenn ich dich richtig verstehe, dann willst du auf der Z/X Ebene drehen, also um die Y-Achse. Dann verändern sich die Normalen des Flusses allerdings nicht, sondern zeigen weiterhin nach oben.
    //Ende-----------------------------------------------------------

    Wenn du mal die Normalen eines Dreiecks (A,B,C) berechnen willst, dann kannst du das ueber das Kreuzprodukt des Vektors AB und AC berechnen.

    PS: Wenn ich mich richtig erinnere, hast du mal geschrieben, dass du dich irgendwo in der 9. Klasse aufhältst. Da her mein Vorschlag: Lies so viel ueber Vektoren wie du kannst!!! (Kommen erst in der 11)

    floorball



  • Ja danke werd ich machen.
    Und ich meinte aber eigentlich die Normalen global gesehen und dann würde bei einer Drehung sich die Normalen ja ändern.



  • Aus der Transformation für die Geometrie kannst du die Transformation für die Normalen berechnen. Das musst du tatsächlich jedes Mal machen, wenn du die Geometrie veränderst, sonst geht deine Beleuchtung kaputt.

    Der Vorschlag von floorball mit dem Kreuzprodukt funktioniert, ist aber nicht die effizienteste Methode. Wenn Du Matrizen für die Transformation benutzt ist die Transformationsmatrix für Normalen die Invers-Transponierte der Geometrietransformation. Im von dir beschriebenen Fall wo nur eine einfache Rotation durchgeführt wird ist die Transformationsmatrix orthogonal, das heisst die Inverse ist gleich der Transponierten und du kannst die selbe Matrix für Geometrie und Normale hernehmen. Das ist allerdings ein Spezialfall. Im Allgemeinen musst Du tatsächlich die Inverse ausrechnen. Ab einer bestimmten Anzahl von Vektoren ist das aber immer noch billiger als jedes Mal das Kreuzprodukt zu bemühen.



  • Ok,danke.


Anmelden zum Antworten