Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 21:01

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Normalen setzen bei TRIANGLE_STRIP ?
BeitragVerfasst: Sa Okt 21, 2006 14:44 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
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".


vielen dank ;)


mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 21, 2006 15:04 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 21, 2006 15:32 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
dann gibt es aber nur eine ? so ganz hab ich das noch net verstanden :lol:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 21, 2006 17:10 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 21, 2006 18:02 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
das weiß ich auch, aber jetzt muss ich das ganze an opengl übergeben, sonst mache ich das für jedes dreieck, aber wie mache ich das hier ?

mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 21, 2006 18:51 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 21, 2006 18:53 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
ich würde ja schon gerne bei triangle_strip bleiben, deshalb muss es da ja auch was gescheites geben ;)

mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 21, 2006 20:54 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 22, 2006 08:42 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
wir reden aneinander vorbei, ich habe überhaupt kein problem die normalen zu berechnen, aber sie opengl zu übergeben schon.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 25, 2006 21:53 
Offline
DGL Member
Benutzeravatar

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 :

Code:
  1. glBegin(GL_TRIANGLE_STRIP);
  2.   glNormal(...);
  3.   glVertex(...);
  4.   glVertex(...);
  5.   glVertex(...);
  6.   glNormal(...);
  7.   glVertex(...);
  8. glEnd();


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 26, 2006 09:07 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
ok nur das wollte ich wissen, vielen dank ;)

mfg


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]