ich möchte gern bei einem Triangle die normale für jedes Pixel/Fragment berechnen (von Hand, nicht via Shader Interpolation etc)..
Ich hab die 3 Eckpunkte und die Normal für jeden Eckpunkt.. wie kann ich da jetzt die Normal an dem Punkt (X, Y, Z) berechnen? (Der Punkt ist auf der fläche des Triangles)
Registriert: Di Dez 27, 2005 12:44 Beiträge: 393 Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo,
meine Idee wäre gewesen :
du wählst einen Eckpunkt des Dreiecks fest und bildest die Vektoren zu den anderen beiden Eckpunkten.
Deinen Punkt (X, Y, Z) stellst du dann als Linearkombination dieser beiden Vektoren dar.
Mit den berechneten Linearfaktoren interpolierst du schliesslich die Normalen...
Mathematisch ausgedrückt :
Die Eckpunkte deines Dreiecks : P1, P2, P3
Die zugehörigen Normalen : N1, N2, N3
Der Punkt auf dem Dreieck : Q
Normale zum Punkt Q : N
Wähle P1 fest
Berechne die Vektoren V1 = P2 - P1 und V2 = P3 - P1
Berechne a und b so dass Q = P1 + a*V1 + b*V2
Berechne die Normale zu dem Punkt Q : N = N1 + a*(N2-N1) + b*(N3-N1)
ich hab jetzt nen Algo gefunden welcher mir praktischerweise direkt die Barycentric Coordinates U und V liefert (brauch es für ne intersection), nur... ich kann damit nix anfangen
In der anleitung zu dem Algo steht leider auch nix weiter beschrieben, nur das es mit diesem U und V wert möglich ist die Normale etc zu interpolieren... aber, wie?
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.