Hallo Simon,
dies ist weder ein Fehler von SWX
noch von OpenGL (die Graphik-Maschine, mit der SWX
arbeitet) noch ist es ein Fehler der Graphikkarte.
Das Thema kennt jeder, der sich selbst einmal mit Programmierung und 3D-Darstellungen am Rechner befasst hat und heißt dort "maximal mögliche Genauigkeit des Z-Buffers".
Oder anders gesagt gibt es bei der 3D-Darstellungsberechnung eine Tiefenberechnung, welche entscheidet, welche Objekte (= Flächen, Flächenteile, Linien, Linienteile oder Punkte) sichtbar oder nicht sichtbar sind, weil sie hinter einem anderen Objekt liegen. Die ganzen Berechnungen kommen dann in einem Tiefen-Speicher dem sogenannten Z-Buffer. Da dieser ein digitaler Speicher mit begrenzter "Auflösung" ist, können nur eine bestimmte maximale Anzahl von Tiefenwerten aufgenommen werden. Je weiter nun ein Objekt ist, um so enger liegen nun benachbarte Teile im Bezug auf die gesamt darzustellende Tiefe hintereinander. Irgendwann wird die digitale Auflösung des Z-Buffers unterschritten. Dann ist nicht mehr klar ob ein darzustellendes Objekt vor oder hinter einem anderen liegt. Damit kommt es zur teilweisen Sichtbarkeit des dahinterliegenden Objekts (ganz nach dem Zufallsprinzip: was ist größer, 1 oder 1).
Dieses Ausreizen des Z-Buffers kann noch auf andere Weise ganz schnell erzeugt werden: Man nehme ein Teil mit größere, nicht ebener Oberfläche und erzeuge von dieser einen Oberflächen-Offset von 0 mm. Und schon kann man ein schönes Geflimmer erzeugen. Geht nur bei größeren, komplexeren Geometrien (siehe Bild, Oberfläche markiert).
Gruß
Markus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP