gck
29-11-2002, 17:51
Habs auch grad in die CG Newsgroup geschrieben, werds aber auch hier reinkopieren:
Hi,
ich habe den Fill Algorithmus entsprechend des Buches implementiert,
funktioniert auch schon!
Allerdings ist mir aufgefallen, dass manche Polygone nach dem U-Boot
nach dem Clipping doppelte Vertices in iherer Vertexlist haben, die dem
ScanfilledPolygon als Konstruktor übergeben werden. Ein solches Polygon
wäre etwa (direkt nach dem Laden des u-boot atoffs, nach der
ViewingPipeline vom CG Institut):
X Y
22 253
11 256
1 255
1 255
Aufgrund dieser Tatsache funktioniert die Sache mit dem Kompensieren von
scanlines, die genau durch Vertices gehen, nimmer (also das mit yPrev
und yNext) und es kommt zu NullPointerExceptions, da ungerade viele
Edges in die ActiveList kommen können...
Kann vielleicht jemand bei diesem Problem eine Lösung anbieten? Ich bin
mir ziemlich sicher, dass der Fehler entweder beim Clipping oder bei der
Viewpipeline liegt, beides sind aber Musterlösungen... Denn die Vertices
eines Polygons kriegt man ja schon ausgerechnet und braucht sie nur noch
dem Konstruktor übergeben, folglich *kann* der Fehler eigentlich nicht
im Fill Algorithmus liegen...
-----------
Wäre dankbar für Hinweise...
Hi,
ich habe den Fill Algorithmus entsprechend des Buches implementiert,
funktioniert auch schon!
Allerdings ist mir aufgefallen, dass manche Polygone nach dem U-Boot
nach dem Clipping doppelte Vertices in iherer Vertexlist haben, die dem
ScanfilledPolygon als Konstruktor übergeben werden. Ein solches Polygon
wäre etwa (direkt nach dem Laden des u-boot atoffs, nach der
ViewingPipeline vom CG Institut):
X Y
22 253
11 256
1 255
1 255
Aufgrund dieser Tatsache funktioniert die Sache mit dem Kompensieren von
scanlines, die genau durch Vertices gehen, nimmer (also das mit yPrev
und yNext) und es kommt zu NullPointerExceptions, da ungerade viele
Edges in die ActiveList kommen können...
Kann vielleicht jemand bei diesem Problem eine Lösung anbieten? Ich bin
mir ziemlich sicher, dass der Fehler entweder beim Clipping oder bei der
Viewpipeline liegt, beides sind aber Musterlösungen... Denn die Vertices
eines Polygons kriegt man ja schon ausgerechnet und braucht sie nur noch
dem Konstruktor übergeben, folglich *kann* der Fehler eigentlich nicht
im Fill Algorithmus liegen...
-----------
Wäre dankbar für Hinweise...