Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?
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?
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?
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?
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?
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?
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?
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?
>> 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?
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?
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
Re: [Talk-de] JOSM - langsam bei ausgefüllten Polygo nen?
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?
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. Ich hatte da mal einige Ueberlegungen angestellt, bin aber nie dazu gekommen, die umzusetzen. Vielleicht wird es ja mal irgendwann was. Aber wenn sich bis dahin jemand anders drum gekuemmert hat, bin ich nicht boese. 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