[Frage]Wie entstehen eigentlich Artefakte?

N.t.H.

Lieutenant
Registriert
Mai 2012
Beiträge
802
Tach,

Aus gegebenen Anlass -ich bemerkte bei der letzten Mp-Partie Crysis2 einige graue Streifen aufblitzen- wollte ich einmal fragen, was denn Grafikkarten-Artefakte verursacht.
Kalte Lötstellen, davon habe ich gehört. Zu wenig Spannung, jaah, das auch schon.

Aber warum tauchen die Artefakte dann auf, und warum gerade in der Form? Warum nicht anders, so zum Beispiel durch falsch gerenderte/shaderte Objekte...

Es gibt auch viele verschiedene Darstellungsformen; graue Streifen, Bildflackern, rosafarbene Punkte und Pixel etc.
Wie entstehen diese?

Ich finde das Thema sehr interessant und hoffe, dass jemand von euch was drüber weiß :)
 
Das ist ein etwas komplexes Thema. Neben hardwarebedingten (kalte Lötstelle, zu wenig Spannung, Überhitzung, defekter RAM) Artefakten gibt es auch softwarebedingte.

Mein absoluter Liebling (evtl. etwas weit hergeholt, ist äußerst lange her): Eine pinke Textur in Half-Life. Aus irgendeiner Laune heraus hab ich diese eine Textur in einer Datei gefunden, genau an der Stelle an der nach einem Oberflächenscan der Festplatte ein Problem vorlag.
 
Der (mit Abstand) häufigste Grund sind Grafikspeicher Fehler.
Der Grafikkartenspeicher ist um den Fakter 100000 häufiger von Fehlerhaften Daten betroffen als der PC Arbeitsspeicher.
Dies liegt daran, dass es beim Grafikspeicher selten auf Fehlerfreiheit ankommt. Einzelne "bunte" Pixel oder Streifen die für die Zeit von einem Frame auf dem Bildschirm erscheinen rechtfertigen keinen ECC Speicher auf Grafikkarten oder eine deutliche Taktabsenlung.

Somit sind die meisten Artefakte hardwarebedingt und können durch eine leichte Absenkung des Speichertaks minimiert werden.

Professionelle Grafikkarten nutzen hingegen deutlich geringere Taktraten und zudem ECC Speicher, da mit diesen eben keine Grafiken für Spiele berechnet werden, sondern z.B. via CUDA wissenschaftliche Berechnungen ausgeführt werden oder sie als "Co-Prozessoren" zu den System CPUs im Server laufen wie es bei praktisch allen Cluster- und Supercomputern der Fall ist.

Grüße
Fallaxia
 
Schöne Frage :)

So genau habe ich mich damit noch nicht beschäftigt, aber eine MÖGLICHE Idee wäre:

Artefakte entstehen auch gerne bei Hitze. Durch größere Wärme steigt der Widerstand der Schaltkreise (leicht), was wiederum höhere Spannungen benötigt, damit die Daten korrekt geleitet werden können. Da der Widerstand nur minimal steigt und die Spannungen nie am absoluten Minimum laufen (sonst gäbe es im Kalten schon Artefakte), macht sich der Temperaturanstieg kaum bemerkbar.
Unter besonders hohen Temperaturen (sehr große Last über längeren Zeitraum verursacht gerne mal 90-105°C je nach GraKa) kann es aber nun passieren, dass so manche elektrische 1 vom Widerstand zu einem undefinierten Zustand zerfressen wird und selbst die Fehlerkorrektur hier nicht einig ist. Damit nun aber die Karte nicht aufhört zu arbeiten, wird der Zustand geraten/auf Null gezogen (weiß nicht, was genau passiert) und schon ist hier wieder ein Wert vorhanden - jedoch eine 0 statt vorher der 1.

Und jetzt ein Anschauliches Beispiel für das Beschriebene:
Angenommen du hat eine Waffe bestehend aus 4 Dreiecken (sowas wie ein eckiger Pokeball). Die 4 Ecken die dafür gebraucht werden seien die Koordinaten (128,128,128), (144,128,128),(144,144,128),(144,144,144). Jetzt kommt aus Versehen eine 0 ins Spiel, weil ein Wert falsch übertragen wurde. So wird aus 128 schnell mal 0 (128 = 10000000, 0 = 00000000) und egal welche 128 du jetzt ersetzt: Statt dem eckigen Pokeball hast du jetzt ne Mega langezogene Pyramide.

Warum sind es teilweise nur Streifen statt Objekte?
Der Pokeball oben ist eine Punktwolke, der durch Verbindung der Punkte über 4 Dreiecke erst flächig wird. Man hätte aber auch eine Objektwolke verwenden können, wo jedes Dreieck seine 3 Eckpunkte einzeln hat -> Würde 12 Punkte brauchen statt 4, aber da hättest du dann einen Streifen quer übers Bild.

Warum kann es auch manchmal Farbflimmern sein?
Ein Punkt ist nur ein Repräsentant aus dem später ein Pixel errechnet wird. Jedes Pixel hat meist 4 8Bit-Werte: Rot, Grün, Blau, Alpha. Verändert sich jetzt einer der Werte drastisch, kriegst du SEHR merkwürdige Farbverläufe. Verändert sich der Alpha-Wert, kann das Objekt sogar verschwinden, oder Transparent werden. Oder plötzlich undurchsichtig, obwohl es Transparent sein sollte.

Warum bleiben manchmal die Artefakte dauerhaft erhalten, und manchmal flimmern die wie blöde?
Das kommt darauf an, wie dein Bild berechnet wird. Werden die Objektdaten einmal errechnet und danach nur noch herumgeschoben, bleiben die Fehler immer die selben. Wird aber in jedem Frame die gesamte Szene neu berechnet, so ist es unwahrscheinlich, dass das selbe Artefakt mehrere Frames hintereinander auftritt -> Flimmer, Flackern und anderes Unschönes.


Also wenn das jetzt falsch sein sollte, lass ich mich gerne eines besseren Belehren, aber aus meiner Sicht ist das sehr plausibel und auch durchaus so möglich. Aber ich habe es nicht nachgeprüft, also kann ich keine Richtigkeit garantieren. Ich hoffe, das hilft weiter :)
Wenn was unklar ist, einfach fragen.

Nachtrag: Zusammen mit Fallaxias Beitrag klingt das gleich noch plausibler
 
Sapphire Forum
Zurück
Oben