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

Aktuelle Zeit: Fr Jul 18, 2025 12:23

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: Mo Aug 15, 2005 20:17 
Offline
DGL Member

Registriert: Fr Aug 12, 2005 21:35
Beiträge: 42
Ich habe schon wieder ne frage und zwar auf den folgenden bild zeichne ich ein Polygon doch irgendwie ist da was falsch wie man sieht. ich verstehe nur nich was? die form ansich stimmt schon nur diese komischen helleren stellen die von ein und dem selben punkt ausgehen die sollten doch nich sein.

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 15, 2005 20:37 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Also mit deiner Frage stellst Du einen vor einem Rätsel. Ohne genauere Beschreibung wie Du dieses Gebilde gerendert hast, wird Dir niemand wirklich weiterhelfen können. Beim Triangle_Fan kann es nämlich durchaus gewünscht sein, dass ein zentraler Punkt häufiger wiederholt verwendet wird.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 15, 2005 20:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Also die Form meint er ja stimmt.
Schalt mal GL_BLEND aus, sollte Helfen ;-)

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 15, 2005 20:41 
Offline
DGL Member

Registriert: Fr Aug 12, 2005 21:35
Beiträge: 42
Äh kann ich auf eine Polygonfläsche keine Blendfunktionen anwenden ohne das solche probs kommen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 15, 2005 20:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Das sind keine Probleme.
Schau, da hinter den "helleren" Flächen schon eine blaue Fläche drunter liegt sind sie Heller.
Die anderen sind dunkler, da dort schwarz drunter liegt.

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 15, 2005 22:37 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du solltest uns einmal erklären was du machen wolltest, und wie du es bisher machst. Also Ist-Zustand vs. Soll-Zustand. Anschließend können wir dir, auch anhand eines Codefetzens sicherlich helfen.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 16, 2005 07:35 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 21, 2003 17:36
Beiträge: 141
Am besten einfach mal nacheinander alles ausschalten, GL_BLEND, GL_LIGHTING, GL_TEXTURE_2D und die Farbe bei jedem Vertex auf nen einheitlichen Wert setzen, dann müsstest dus ja irgendwann sehen, was es ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 16, 2005 08:22 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also das hellere "Flecke" entstehen liegt zu 100% daran, dass Blending (um genau zu sein adaptives Blending) aktiviert ist. Licht, Texturen oder sonst etwas kann ich so nicht erkennen. Deaktiviere also mal das Blending dann sollte es gehen.

Aber ich kann Flash nur zustimmen. Du solltest uns schon sagen was genau du vor hast und wie es eigentlich sein sollte. Nur dann können wir dir effektiv helfen! Sonst könnten wir leicht dem Trugschluss erliegen, dass das Bild so korrekt aussieht. Sind ja keine offensichtlichen Fehler vorhanden. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 16, 2005 11:30 
Offline
DGL Member

Registriert: Fr Aug 12, 2005 21:35
Beiträge: 42
Ok erst mal wieder danke für eure antworten.
Also ich versuche das jetzt mal zu beschreiben was ich machen möchte. Ich habe Längen- und Breitenwerte der der Grenzen der Erde. Diese zeichne ich mit GL_LINE_STRIP was auch ohne probs geht. So nun kommen diese blauen Flächen ins spiel. Und zwar sind das auch wieder Längen- und Breitenwerte jedoch von bestimmten regionen auf der Erde. Diese zeichne ich mit GL_POLYGON und mache sie wie folgt transparent:
Ich "schalte" Blend mit glEnable(GL_BLEND) an dann "schalte" ich den tiefentest aus mit gldisable(GL_DEPTH_TEST). Nun benutze ich glBlendFunc( GL_SRC_ALPHA, GL_ONE) um den Blendfaktor zu berechnen. So nun kommt glBegin(GL_POLYGON) und noch die farbe glColor4f(0.1, 0.1, 1.0,0.28) danach zeichnen ich in einer schleife mit glVertex2f die Punjte des Polygon. Wenn ich damit fertig bin schalte ich GL_BLEND wieder aus und GL_DEPTH_TEST wieder an.

Hintergurnd warum die Polygonfläche Tranzparent sein muß ist das auch darunter mal noch was sein kannn was man sehen muß und es auch einfach schöner aussieht wenn wann die Grenzstriche der Erde durchsieht die ich ja zuerst gemal habe.

So die daten die ich benutze sehe z.b. so aus:
Zitat:
52.22:6.98
52.24:7.07
52.29:8
52.12:8
52.14:9
51.67:9
51.33:8.77
51.09:8.27
51.07:7.97
51:7.88
50.8:8.03
50.76:7.99
50.58:7
50.34:6.41
50.43:6.39
50.47:6.35
50.48:6.25
50.55:6.2
50.59:6.25
50.62:6.28
50.65:6.25
50.67:6.17
50.73:6.12
50.72:6.07
50.77:6.02
50.8:5.98
50.81:5.99
50.8:6.01
50.81:6.02
50.82:6.02
50.84:6.02
50.86:6.05
50.85:6.06
50.85:6.07
50.86:6.07
50.86:6.08
50.87:6.09
50.88:6.08
50.89:6.07
50.9:6.07
50.92:6.08
50.93:6.02
50.96:6.01
50.97:6.01
50.98:6.03
50.98:5.99
50.97:5.89
50.98:5.89
51:5.9
51.01:5.88
51.02:5.87
51.03:5.87
51.04:5.88
51.04:5.87
51.06:5.89
51.06:5.9
51.04:5.93
51.04:5.95
51.07:5.98
51.11:6.05
51.12:6.09
51.13:6.09
51.16:6.17
51.17:6.16
51.17:6.15
51.19:6.18
51.19:6.17
51.17:6.11
51.17:6.1
51.17:6.08
51.19:6.08
51.21:6.07
51.22:6.07
51.23:6.09
51.24:6.08
51.25:6.09
51.31:6.15
51.31:6.16
51.36:6.23
51.37:6.22
51.39:6.22
51.4:6.23
51.4:6.21
51.41:6.21
51.43:6.22
51.44:6.22
51.45:6.21
51.47:6.22
51.48:6.22
51.5:6.21
51.51:6.21
51.56:6.16
51.61:6.1
51.65:6.12
51.67:6.04
51.68:6.03
51.69:6.03
51.71:6.03
51.72:6.04
51.74:5.96
51.74:5.95
51.75:5.95
51.77:5.99
51.77:5.98
51.78:5.98
51.79:5.99
51.79:5.97
51.81:5.97
51.81:5.95
51.82:5.95
51.83:5.96
51.82:5.95
51.83:5.95
51.83:5.97
51.85:6.05
51.85:6.09
51.84:6.17
51.85:6.17
51.89:6.11
51.91:6.15
51.9:6.17
51.89:6.19
51.88:6.2
51.87:6.28
51.84:6.37
51.83:6.36
51.83:6.41
51.85:6.41
51.87:6.4
51.86:6.45
51.86:6.46
51.86:6.49
51.87:6.5
51.89:6.58
51.91:6.66
51.92:6.68
51.91:6.7
51.91:6.75
51.92:6.78
51.96:6.8
51.96:6.82
51.97:6.83
51.99:6.83
51.99:6.82
52.03:6.75
52.04:6.69
52.06:6.69
52.08:6.74
52.09:6.75
52.11:6.76
52.12:6.84
52.17:6.9
52.19:6.96
52.22:6.98


So und hier mal noch ein screenshot von einem anderen programm wie es dann ca bei mir auch mal aussehen soll.
Bild

Hoffe ihr versteht so halbwegs was ich meine

Danke für die Hilfe Nico


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 16, 2005 11:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ah. Jetzt hat das ganze ein Gesicht. Also das ist ein alles andere als leichtes Problem und nur bedingt so lösbar. Schau dir mal das Bild an. Rechts unten hast du das Polygon. Wenn du jetzt der Reihe nach deine Punkte übergibst passiert es so, dass die 1 irgendwo am Rand ist und deine Dreiecke als einen Bestandteil immer die 1 hätten. Dadurch entstehen diese hellen Überlagerungen.

Eine bedingte Lösung dafür wäre es, wenn du den Punkt ziemlich genau in die Mitte setzt und dann deine Punkte im Uhrzeigersinn oder dagegen zeichnest. Das würde aber nur richtig Funktionieren, wenn keine Lücken drin wären. So etwas wie in dem Blauen rechts Unten mit den Zacken könntest du dann vergessen. Evtl bleibt dir nichts anderes Übrig als all deine Koordinaten zu schnappen und sie selber von Hand in Dreiecke zu zerhacken. Aber das ist nicht gerade einfach. Und so spontan hätte ich auch keine Ahnung wie man das am dümmsten anstellen könnte.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 16, 2005 11:51 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Ich könnte wetten, dass dein erster screen nicht mit GL_POLYGON gezeichnet wurde, sondern mit GL_TRIANGLE_FAN. und dann solltest du ganz einfach deinen mittelpunkt auf die selbe höhe (y-wert) wie deine punkte aussenrum setzen.

(ansonsten wäre zu beweisen, wie so ein bild mit GL_POLYGON zustande kommen soll)

Und das was ich im zweiten screen sehe, ist doch eher ein fall für 2D, oder?

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 16, 2005 12:23 
Offline
DGL Member

Registriert: Fr Aug 12, 2005 21:35
Beiträge: 42
@luketheduke

Doch der erste screen oben ist mit GL_POLYGON gemacht. Dsa prob ist nur das wenn ich dir den code jetzt hier poste du sicher erst mal komisch schaust da ich das (leider) mal nich in delphi mache sondern in PureBasic.
Ach egal so viel anders is das auch nich also hier der codeteil in dem ich die fläche mache:

Code:
  1.  
  2.       FirstElement(BorderData())
  3.       glEnable_(#GL_BLEND)
  4.       gldisable_(#GL_DEPTH_TEST)
  5.       glBlendFunc_(#GL_SRC_ALPHA,#GL_ONE)
  6.       glBegin_(#GL_POLYGON)
  7.       glColor4f_(0.1, 0.1, 1.0,0.28)
  8.       glVertex2f_(BorderData()\lat, BorderData()\lon)
  9.       While NextElement(BorderData())
  10.           glVertex2f_(BorderData()\lat, BorderData()\lon)
  11.       Wend
  12.       glEnd_()
  13.       gldisable_(#GL_BLEND)
  14.       glEnable_(#GL_DEPTH_TEST)
  15.  


So eben ne erklärung und zwar ist BorderData() ne LinketList in der ich die daten stehen habe. der rest ist ja für programmierer verständlich.

Bitte nich böse sein das ich hier frage wenn ich auch gerade mal nich mit delphi programmiere doch ist das nun mal das beste board was ich kenne was sich mit OpenGL befasst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 16, 2005 12:34 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Luke: Hast du dir auch mal das Bild angesehen, von dem ich den Link gepostet habe? Da ist es genau so dargestellt. Und 2D. Für mich sieht das Bild oben auch recht 2D aus. Zu mindest sieht es nicht wie ein typischen 3D Bild aus. Aber 2D oder 3D ist bei dem Problem ziemlich egal. Das Prinzip bleibt das Gleiche.

Ich habe das auch geradae noch mal ausprobiert und ein Bild davon angehangen.

@nico: Sofern du keine Fragen stellst wie mache ich das mit Basic soll uns das egal sein. ;-)


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 16, 2005 12:40 
Offline
DGL Member

Registriert: Fr Aug 12, 2005 21:35
Beiträge: 42
Na ja ich programmiere ja auch in delphi doch genau das project mach ich in Basic und fang dabei auch noch mit OpenGL an. Aber jetzt wo ich das bild sehe verstehe ich das prob. Nun muß ich mir noch ne lösung überlegen wie ich das verhindern kann das wenn daten kleiner werden sieser effekt auftritt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 16, 2005 13:04 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Nur so ne Idee. Weiß nicht ob das großartig Praktikabel ist und alles rein Theoretisch. Du sucht nen Mittelpunkt und überprüfst dann die Winkel in denen sich die Punkte zum Mittelpunkt befinden. Du darfst nur in eine Richtung und alles was zurück gehen würde müsstest du extra betrachten und rendern.

Um das an meinem Bild ein wenig zu verdeutlichen. Punkt 0 ist mal als Mittelpunkt deklariert. Dann übergibst du den. Dann Punkt 1 und 2. Von Punkt 0 aus gesehen ist der Winkel für Punkt 3 wieder in die andere Richtung. Also lässt du ihn raus (Punkt irgendwo merken) und renderst Punkt 4. Wenn du dann dein Polygon fertig hast renderst du die gemerkten Punkte. Also Punkt 3. Mit Punkt 2 und 4 ergibt das wieder ein richtiges Dreieck. Allerdings dürfte das nur für recht einfache Formen funktionieren. Also wenn man lediglich nur kleine Ecken extra rendern müsste. Bei Komplexeren dürfte der auch recht schnell wieder auf die Nase fliegen. Aber vielleicht hilft die Idee ja bei Weiterem.

Evtl gibt es ja noch sinnvolle Lösungen dafür. Ich ziehe mir das gerade nur aus den Fingern. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

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.

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