Task 4 Pixelfehler

  • Ich habe leider ab Task 4 Pixelfehler die ich nicht ausmerzen kann. Wäre dankbar für jede Hilfe.


    Problem 1: Pixelfehler in Randbereichen der Geometrie (Bsp. Text und car vom Abgabeserver, links: mein Bild - rechts: differenz zu Lösung)


    text (1).pngtext.png
    car (1).pngcardiff.png



    Diese sind eben nur am Rand bzw. an Übergängen zwischen verschiedenen Geometrien zu sehen, immer nur max. so eine handvoll Pixel pro Bild. Ich vermute stark, dass es sich um Ungenauigkeiten im Rasterizer handelt. Mein Algorithums basiert jedenfalls auf dem PDF zu Rasterization aus dem Wiki. Gleich eine Frage dazu, im Wiki steht wir müssen uns nicht um die Kanten speziell kümmern, ist es also zulässig alpha, beta, gamma auf >= 0 zu überprüfen statt > 0? Denn dann werden ja auch Randpixel gleich mitgerendert. Wenn ich das nicht so mache entstehen auch Lücken zwischen den Triangles.


    Problem 2: Pixelfehler bei Clipping an der linken und oberen Kante


    duck_clip.png


    Diesen Fehler kann ich beheben, wenn ich im Triangle Rasterizer baryzentische gamma Koordinate nicht durch gamma = 1 - alpha - beta berechne, sondern gamma genau wie die anderen beiden Komponenten durch die Line Equations berechne. Auch wenn ich beim alpha, beta, gamma Test auf >= -0.000001 prüfe verschwindet der Fehler logischerweise da ja dann einfach ein größerer Bereich als "innen" zählt. Am ersten Problem ändert sich dadurch jedoch nichts.


    Ich nehme an, dass es sich bei beiden Problemen um kleine Rundungsfehler handelt. Ich jetzt schon recht viel Zeit mit dem Triangle Rasterizer verbracht, ohne Erfolg. Bin mir auch recht sicher, dass ich mit Bit Shifts und Berechnungen von a,b,g das meiste richtig mache, Ergebnis passt im Großen und Ganzen ja auch.


    Ich bin dankbar für jeden Hinweis woran es liegen könnte.