hi, ich zeichne 2 Dreicke auf einmal via TRIANGLE_STRIP, habe also 4 punkte, jetzt möchte ich die Flächennormalen dieser beiden Dreicke berechnen (bekomme ich hoffentlich noch gerade so eben hin), wie setze ich diese dann ? bzw wo ? ich zeichne die dreiecke ja nicht einzeln sondern "zusammen".
Logischer weise auf der Schnittgeraden ^^
Bei TraingleStrip wäre das der Schnittpunkt aus den Geraden zwischen den Punkten 2 und 3 und den Punkten 1 und 4. Genau dort liegt die Normale
Na fuer mich hats sich so angehört, als wolltest du eine Normale Errechenen, die das Licht auf beide Dreiecke wirft, sodass das Licht praktisch Senkrecht auf der Schnittgerade steht. Dann errechnest du den Punkt aus dem Schnittpunkt von Schnittgerade (Gerade zwischen Vektor 2 und 3) und der Gerade, zwischen den Vektoren (1 und 4).
Soll das Licht senkrecht auf jeder Flaeche separat stehen, dann ist es ja unnötig, dass du uns angibst, dass du 2 Triangles hast, deswegen war ich verwirrt. Solltest du diese Lösung haben wollen, dann steht die Normale Senkrecht auf der Fläche, d.h. du errechnest das Vektorprodukt aus zwei Vektoren, die diese Fläche angeben. Dieses Vektorprodukt ist dann EIN Normalenvektor (von unendlich vielen). Der Kann auch beliebig normalisiert werden.
Wenn die Dreiecke sich keine Punkte und damit auch Normalen teilen sollen, dann muss man sie einzeln übergeben (GL_TRIANGLES).
Falls es nur um die Beleuchtung geht, wäre auch noch glShadeModel(GL_FLAT) interessant. Dabei bekommt das Dreieck dann die Farbe vom letzten Punkt.
Also angenommen du hast zwei Dreiecke mit den Koords a,b,c (erstes dreieck) und b,c,d (zweites dreieck)
Dann ist die Normale vom ersten Dreieck abxac und die vom zweiten eben bcxbd Lässt sich aber auch variieren. Ka ob du das nun meinst. Erklär mal das Prob genau ^^
Wenn dus so meinst, sollte es ja ganz einfach sein, wenn du die Vektoren in nem array oder so hast
Registriert: Di Dez 27, 2005 12:44 Beiträge: 393 Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo Seth,
wenn du 2 Dreiecke mit GL_TRIANGLE_STRIP zeichnen willst, also 4 Vertexe übergibst, setzt du die Normale für das erste Dreiecke am besten vor dem ersten Vertex und die Normale für das zweite Dreieck vor dem 4 Vertex (da du mit dem viertem Vertex erst das zweite Dreieck definierst), also in etwa so :
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.