Addition und Skalierung von Norm Vektoren



  • Hi,

    mir geht es um die Optimierung eines Shaders und ich möchte einige möglicherweise unnötige Normalisierungen entfernen und bin mir nicht ganz sicher ob das immer machbar ist. Wenn ich z.B. zwei normalisierte Vektoren addiere, sollte die Länge des Summenvektors auch immer 2 betragen, oder?
    a=1|\vec{a}|=1
    b=1|\vec{b}|=1
    a+b=2|\vec{a}+\vec{b}|=2
    D.h. in dem Fall müßte es reichen statt aufwendig zu normalisieren, lediglich mit 0.5 zu multiplizieren?

    Wenn ich zwei Normalen linear interpoliere
    (n_0a)+(n_1(1a))(\vec{n}\_0 * a) + (\vec{n}\_1 * (1-a))
    ist doch aber keine Normalisierung mehr nötig, wenn beide vorher bereits eine Norm von 1 hatten, oder?

    danke



  • dann addiere mal (0 1) und (0 -1), die sind beide normiert. Oder auch (0 1) und (1 0). Um das Normalisieren kommste nicht rum.



  • Es gilt nur |a| + |b| >= |a + b|. Das nennt man die Dreiecksungleichung.


Anmelden zum Antworten