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

Aktuelle Zeit: Fr Jul 18, 2025 11:55

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Grafikfehler
BeitragVerfasst: Fr Jan 02, 2004 00:03 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Hi,
bei nem Kumpel treten relativ fiese Grafikfehler auf, woran mag das liegen?
Bild davon als Attachment.
Die Fehler treten ab einer bestimmten Disanz auf. Das sind alles texturierte Quads.
Diese Streifen sind Lücken in den Quads, darunter jeweils ein weiterer, texturierter Quad...

Programm, bei dem das auftritt: www.philiplb.der/YAM.zip


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2004 00:21 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wenn der Screenshot größer wäre, könnt ichs evtl. fester behaupten, aber für mich sieht das stark nach Z-Fighting aus, besonders im Hintergrund siehts so aus als würde was durch die Karte durchscheinen. Zeichnest du möglicherweise Unter dem Deckel das Memorybild?

Wenn ja, dann scheint das dort wohl aufgrund geringerer Z-Tiefe (sprich Ungenauigkeiten) durch. Also entweder ein Objekt mit verschiedenen Texturen, höhere Z-Puffertiefe, oder die Nearclippingplane soweit groß möglich halten um besser Z-Auflösung zu erhalten.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2004 01:20 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Näher ran ging nicht, weil dieser Effekt eben nur ab einer bestimmten Distanz auftrat.
So ist eine der Karten aufgebaut (Sozusagen von der Seite gesehen):


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2004 04:38 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 20:27
Beiträge: 479
Wohnort: Bremen
Sollte es, wie SOS sagt, am Tiefenpuffer liegen, dann müsst eine Erhöhung des Abstands zwischen Brett und Karten eigentlich das "Flimmern" verhindern. Setze den Abstand doch mal auf 0,2 oder so...

Die Fließkomma-Auflösung wird besser je dichter man sich der 1 nähert, deshalb tritt solch ein Effekt üblicherweise auch erst ab einer bestimmten Entfernung (Tiefe) auf. Damit aus der Nähe betrachtet die Karten aussehen als liegen sie direkt auf dem Boden ohne das es aus aus Fernsicht zum Flimmern kommt, könntest du den Abstand zwischen Karten und Brett von der Entfernung zur Kamera abhängig machen. (Nur ne Vermutung, keine Ahnung ob Tiefenwerte bei einem 16 bit Tiefenpuffer wirklich als Float gespeichert werden)

Grüße,
Lith

_________________
Selber Denken macht klug!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2004 08:26 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Sehe ich das richtig? Verwendest du pro Karte zwei Quads? Wenn die nur minimal übereinander liegen und du weit weg zoomst, dann ist es klar, dass es zu Fehlern kommt. Da nämlich die Karte dann (zwecks geringeren Tiefenbuffer) glaubt die Flächen lägen genau übereinander. Was ja eigentlich nicht so ganz stimmt.

Anstelle an dem Tiefenbuffer rumzustellen würde ich eher an der Ursache arbeiten. Allerdings weiß ich jetzt nicht was bei dir Texture 1 und Textur 2 zu bedeuten hat. Wenn das Ober und Unterseite ist, dann musst du es gar nicht mal so Kompliziert machen. Dann wäre folgendes sicherlich die Idealste Lösung und würde den Fehler am Besten lösen.
Code:
  1. // In der Initialisation
  2.   // Backfaceculling aktivieren
  3.   glEnable(GL_CULL_FACE);
  4.  
  5.   // beim Zeichnen
  6.   // Oberseite zeichnen
  7.   // Unterseite an der selben Stelle zeichnen ABER die Reihenfolge der Punkte muss umgekehrt zur Oberfläche sein.

Die Unterseite kann 100%tig an der selben Stelle sein wie die Oberfläche, da nur immer eine Seite sichtbar ist. Die beiden Flächen müssen mit der Rückseite zueinander Zeigen. Wenn du sie dann drehst hat es den anschein, als ob du nur eine Fläche hättest und diese auf jeder Seite eine unterschiedliche Textur hätte.

PS: wenn du nur die Ober und Unterseite von den möglichen gedrehten Flächen zeichnest, dann kannst du auch noch ein wenig an Geschwindigkeit herrausholen. Du musss ja nicht unbedingt die Unterflächen zeichnen die man sowieso nicht sieht.

Für den Fall, dass es nicht Ober und Unterseite der Karten ist kannst du auch durch einstellen der Tiefenfunktion (glDepthFunc) die Behandlung bei solchen Fällen beinflussen indem die Flächen genau aufeinander leigen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2004 17:15 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Danke für die Antworten.
Das ganze werde ich heute im Laufe des Tages ausprobieren.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.007s | 14 Queries | GZIP : On ]