Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-05-12 Diskussionsfäden Andreas Jacob
Am Montag, 12. Mai 2008 05:42:13 schrieb Henry Loenwind:
 Frederik Ramm wrote:
  dazu, trac genau zu verfolgen, daher danke fuer den Hinweis.

 Ok, Patch hängt am Ticket.

Zunächst erst einmal vielen Dank für eure stete Mühe. Die 632 ist in 
polygonreichen Gebieten wesentlich besser benutzbar. Die bisherigen 
Verbesserungen sind für mich schon ein Unterschied wie Tag und Nacht.

Wenn jetzt noch die Probleme der nicht-transparenten Layer aus #736 behebt, 
bzw. die Lösungen einpflegt, dann kann man wieder richtig schön mit josm 
loslegen. 


 Wie gesagt, draw.rawgps.trianglelines ist bei mir mehr als 10 mal
 schneller als einfache Linien - und ich verstehe es nicht...

Mal in's Blaue hinein vermutet. Die Engines von Grafikkarten bzw. die 
ansteuernden Treiber sind doch alle auf das Arbeiten mit Dreiecken getrimmt. 
Deswegen prüfen ja auch viele Benchmarks die Dreiecksfüllrate, Vielleicht ist 
es im Code so (ohne ihn gesehen zu haben), dass die Linienfunktion darauf 
beruht, dass die einzelnen Punkte der Linie von der CPU berechnet werden 
müssen, und diese Punkte zum Zeichnen an die Grafiktreiber übergeben werden, 
wärend die Dreiecksfunktion direkt an die Treiber gegeben wird, und dieser 
sie wiederum auch nur zur Berechnung und Darstellung in die GPU schiebt.

Mit dieser Erklärung kann ich mir die von dir beobachteten 
Geschwindigkeitsunterschiede sehr gut vorstellen.

Gruß Andreas

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de


Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-05-12 Diskussionsfäden Michael Buege
Am Montag 12 Mai 2008 02:19:44 schrieb Frederik Ramm:
 Hallo,

  Leider schleicht es immer noch ordentlich.

 Schalte doch einfach die Polygonfuellerei ab, wenn Du einen langsameren
 Rechner hast - so wichtig ist das doch nicht. Ich selber arbeite
 meistens sogar mit dem Wireframe-Modus, weil mir alles andere zu bunt
 ist ;-)

Dito. Meistens schalte ich nur dann um, wenn ich etwas die Uebersicht verloren 
habe oder etwas Bestimmtes suche. 

Michael


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de


Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-05-12 Diskussionsfäden Henry Loenwind
Andreas Jacob wrote:
 Am Montag, 12. Mai 2008 05:42:13 schrieb Henry Loenwind:
 Wie gesagt, draw.rawgps.trianglelines ist bei mir mehr als 10 mal
 schneller als einfache Linien - und ich verstehe es nicht...
 
 Mal in's Blaue hinein vermutet. Die Engines von Grafikkarten bzw. die 
 ansteuernden Treiber sind doch alle auf das Arbeiten mit Dreiecken getrimmt. 

Na, das ist es nicht.

Langsam: g.drawLine(old.x, old.y, screen.x, screen.y);
Schnell: g.drawLine(old.x+2, old.y+2, screen.x, screen.y);

Also in dem Moment, in dem die Linie dort weitergeht, wo die letzte 
aufgehört hat, ist es schnarchlangsam. Der Name des Settings bezieht 
sich nur auf die Form, die dabei rauskommt, da ich dann eben 2 versetzte 
Linien zeichne (um genau zu sein, diese gehen von den Endpunkten der 
Pfeil-Linien zum nächsten Punkt).

cu
Henry

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de


Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-05-11 Diskussionsfäden Wolfgang Silbermayr
 Das Problem liegt einerseits darin, dass *alle* gefüllten Polygone 
 gezeichnet werden, nicht nur die sichtbaren.
 
 Ja, das ist ein grosser Murks; alle Objekte sollten irgendwie eine
 Bounding Box haben, damit man schnell sehen kann, welche ueberhaupt
 angefasst werden muessen.

Also meine Versuche haben gezeigt dass die ausserhalb des sichtbaren
Bereichs liegenden Polygone in der Grössenordnung unter 1ms liegen, das
dürfte erstmal kein grosses Problem darstellen.

 Wenn das mit der Transparenz alles nichts gescheites ist, dann
 koennten wir mal probieren, ob es nicht fast besser ist, an den Kanten
 von Polygonen solche kleinen Schraffuren nach innen hin einzumalen:
 
 
 
 Es koennte sein, dass das schneller geht und sogar noch
 uebersichtlicher waere, kaeme aber echt auf 'nen Versuch an.

Die Idee gefällt mir, wäre auf jeden Fall einen Versuch wert.

Lg, Wolfgang.

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de


Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-05-11 Diskussionsfäden Henry Loenwind
Frederik Ramm wrote:

 Eingebaut, danke. (Der 733 geht so nicht, beim Aufruf von
...

Hast Du Dir eigentlich mal #720 (josm.gui.layer.GpxLayer paint) 
angeschaut? Wäre die Annahme so richtig?  Wenn ja, würde ich da nen 
richtigen Patch draus machen, hat sich in der Gegend ja auch was getan 
inzwischen.

cu
Henry

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de


Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-05-11 Diskussionsfäden Frederik Ramm
Hallo,

 Hast Du Dir eigentlich mal #720 (josm.gui.layer.GpxLayer paint) 
 angeschaut? Wäre die Annahme so richtig?  Wenn ja, würde ich da nen 
 richtigen Patch draus machen, hat sich in der Gegend ja auch was getan 
 inzwischen.

Ich hab einen Kommentar rein geschrieben. Komme in letzter Zeit nicht so 
dazu, trac genau zu verfolgen, daher danke fuer den Hinweis.

Bye
Frederik

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de


Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-05-11 Diskussionsfäden Henry Loenwind
Frederik Ramm wrote:

 Ich hab einen Kommentar rein geschrieben. Komme in letzter Zeit nicht so 
 dazu, trac genau zu verfolgen, daher danke fuer den Hinweis.

Ich glaub ich werd wahnsinnig. Wenn ich:

g.drawLine(old.x, old.y, screen.x, screen.y);

zu:

g.drawLine(old.x+2, old.y+2, screen.x, screen.y);

ändere, dauert das ganze painten nur noch ca 1/15tel der Zeit. Häh??? 
Was soll das? Irgendjemand eine Ahnung?

cu
Henry

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de


Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-05-11 Diskussionsfäden Henry Loenwind
Frederik Ramm wrote:

 dazu, trac genau zu verfolgen, daher danke fuer den Hinweis.

Ok, Patch hängt am Ticket.

Ich habe zwei Änderungen, die visuelle Auswirkungen haben,
konfigurierbar gemacht; Default: AUS. Siehe auch Tickettext.

Wie gesagt, draw.rawgps.trianglelines ist bei mir mehr als 10 mal
schneller als einfache Linien - und ich verstehe es nicht...

cu
Henry


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de


Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-05-10 Diskussionsfäden Frederik Ramm
Hallo,

 Ich habe unter http://josm.openstreetmap.de/ticket/685 einen Patch 
 angehängt, der die Performance etwas verbessert.
 
 Unter http://josm.openstreetmap.de/ticket/734 und 
 http://josm.openstreetmap.de/ticket/733 sind weitere Vorschläge zur 
 Performance-Verbesserung.

Eingebaut, danke. (Der 733 geht so nicht, beim Aufruf von
displaySegments geht es darum, die bislang angesammelten Segmente
auszugeben, sobald sich der Zeichenstil aendert, und das ist
unabhaengig davon, ob die aktuelle Position selbst visible ist oder
nicht.)

 Das Problem liegt einerseits darin, dass *alle* gefüllten Polygone 
 gezeichnet werden, nicht nur die sichtbaren.

Ja, das ist ein grosser Murks; alle Objekte sollten irgendwie eine
Bounding Box haben, damit man schnell sehen kann, welche ueberhaupt
angefasst werden muessen.

 Wie machen es denn andere Renderer, wissen die, dass z.B. park=leisure erst 
 gerendert werden muss und rendern dann building=yes drüber? Dann bräuchte 
 man keine Transparenz und das Zeichnen der Polygone wäre sehr schnell.

Ja, aber das huelfe uns wenig, denn weil wir ja ein Editor sind und
kein Renderer, wollen wir im Zeifel schon sehen, dass da noch Objekte
unter dem Park liegen...

Wenn das mit der Transparenz alles nichts gescheites ist, dann
koennten wir mal probieren, ob es nicht fast besser ist, an den Kanten
von Polygonen solche kleinen Schraffuren nach innen hin einzumalen:



Es koennte sein, dass das schneller geht und sogar noch
uebersichtlicher waere, kaeme aber echt auf 'nen Versuch an.

Bye
Frederik

-- 
Frederik Ramm  ##  eMail [EMAIL PROTECTED]  ##  N49°00'09 E008°23'33


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de


Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-04-28 Diskussionsfäden Wolfgang Silbermayr
Frederik Ramm schrieb:
 Hallo,
 
 Ich habe mich (obwohl ich schon einige Zeit mappe) vor Kurzem erst
 intensiver mit ausgefüllten Polygonen beschäftigt, insbesondere um
 Wälder zu mappen. Die aktuelle Version von JOSM wird jedoch immer dann
 extrem langsam wenn eine große Fläche eines halbtransparent ausgefüllten
 Polygons sichtbar ist
 
 JOSM mit Wireframe-Anzeige ist langsam, JOSM mit mappaint ist
 langsamer und JOSM mit mappaint mit ausgefuellten Polygonen ist
 extremst langsam. Dieser ganze Zeichencode ist ueberhaupt nicht
 optimiert, da ist viel Spielraum fuer Verbesserungen (wie JOSM-NG
 schon bewiesen hat). Wenn sich jemand mal gruendlich der Sache
 annehmen will, das waere allen eine grosse Hilfe.

Habe da mal reingesehn, und bei dem Code, der das Zeichnen der Polygone
betrifft, scheint nicht sehr viel Raum für Verbesserungen zu sein.
Die Funktion g.fillPolygon(polygon); in
org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java Zeile 228
im aktuellen SVN benötigt nach meinen Messungen über 1 Sekunde, wenn ich
ein Polygon so anzeigen lasse, dass es die gesamte Zeichenfläche
ausfüllt. Sind mehrere übereinander liegende Polygone im Bild, so kann
es durchaus mal bis zu 5 Sekunden dauern, bis ein Zoomschritt
durchgeführt wurde.

fillPolygon() ist eine Java-eigene Funktion:
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Graphics.html

Wenn da jemand andere Verbesserungsvorschläge hätte als Java abzuändern
oder eine eigene Alternative zu schreiben (die natürlich auch erstmal
effizienter werden müsste) würde mich das sehr freuen. Ein Workaround,
der mir so auf die Schnelle einfällt (aber sicher nicht das Gelbe vom Ei
ist), wäre zuerst mit Wireframe zu zeichnen, und dann das Befüllen der
Polygone einem Workerthread zu überlassen.

Lg, Wolfgang.

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de


Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?

2008-04-28 Diskussionsfäden Thomas Hieber
Wolfgang Silbermayr schrieb:
 Frederik Ramm schrieb:
   
 Hallo,

 
 Ich habe mich (obwohl ich schon einige Zeit mappe) vor Kurzem erst
 intensiver mit ausgefüllten Polygonen beschäftigt, insbesondere um
 Wälder zu mappen. Die aktuelle Version von JOSM wird jedoch immer dann
 extrem langsam wenn eine große Fläche eines halbtransparent ausgefüllten
 Polygons sichtbar ist
   
 JOSM mit Wireframe-Anzeige ist langsam, JOSM mit mappaint ist
 langsamer und JOSM mit mappaint mit ausgefuellten Polygonen ist
 extremst langsam. Dieser ganze Zeichencode ist ueberhaupt nicht
 optimiert, da ist viel Spielraum fuer Verbesserungen (wie JOSM-NG
 schon bewiesen hat). Wenn sich jemand mal gruendlich der Sache
 annehmen will, das waere allen eine grosse Hilfe.
 

 Habe da mal reingesehn, und bei dem Code, der das Zeichnen der Polygone
 betrifft, scheint nicht sehr viel Raum für Verbesserungen zu sein.
 Die Funktion g.fillPolygon(polygon); in
 org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java Zeile 228
 im aktuellen SVN benötigt nach meinen Messungen über 1 Sekunde, wenn ich
 ein Polygon so anzeigen lasse, dass es die gesamte Zeichenfläche
 ausfüllt. Sind mehrere übereinander liegende Polygone im Bild, so kann
 es durchaus mal bis zu 5 Sekunden dauern, bis ein Zoomschritt
 durchgeführt wurde.

 fillPolygon() ist eine Java-eigene Funktion:
 http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Graphics.html

 Wenn da jemand andere Verbesserungsvorschläge hätte als Java abzuändern
 oder eine eigene Alternative zu schreiben (die natürlich auch erstmal
 effizienter werden müsste) würde mich das sehr freuen. Ein Workaround,
 der mir so auf die Schnelle einfällt (aber sicher nicht das Gelbe vom Ei
 ist), wäre zuerst mit Wireframe zu zeichnen, und dann das Befüllen der
 Polygone einem Workerthread zu überlassen.

 Lg, Wolfgang.
   
Ich bin ja bestimmt kein JAVA Spezialist - daher kann das natürlich auch 
Blödsinn sein, den ich schreibe, aber ich meine mich zu erinnern, das 
Eclipse ein eigenes Grafikframework für die GUI geschrieben hat, da die 
normalen JAVA Klassen zu langsam waren. Dieses Eclipse GUI Framework ist 
meines Wissens auf den wichtigsten Plattformen als native Implementation 
verfügbar. Evtl. wäre das ja einen Blick wert.
Eine andere Alternative wäre OpenGL für die Darstellung zu nutzen (Falls 
unter JAVA verfügbar). Das ist auch Plattfromunabhängig, und das 
Zeichnen eines ausgefüllten Polygons mit teilweiser Transparenz ist für 
OpenGL eher eine Sache von Millisekunden als von Sekunden.
Und so als Nebeneffekt wäre es auch möglich eine deutlich ansprechendere 
Darstellung der Karte erreichen, indem auch Linien als texturierte 
Polygone dargestellt würden. (Um z.B. eine Linie noch eine dunkle 
Umrandung zu geben.)

Gruß,
Thomas

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de