FbmLandscapes + Java3D

vorhergehende Artikel in: Geo Java dWb+ Komponenten
20.06.2013

Nachdem ich meinen Landschaftsgenerator abgeschlossen hatte, hat mich das Ergebnis der Vorschau nicht zufrieden gestellt. Jedes Mal PovRay zu starten, nur um eine 3D-Ansicht zu sehen war einfach zu unbefriedigend. Zeit, sich einmal mit Java3D zu beschäftigen...

Bevor ich das allerdings tat, probierte ich eine selbstgemachte 3D-Visualisierung aus. Den Code, den ich als Grundlage benutzte, hatte ich im Netz gefunden. Nach der Inbetriebnahme stellte sich aber relativ schnell heraus, daß dieser Code meinen Anforderungen nicht genügte: der Ressourcenhunger war enorm.

Also analysierte ich den Code und stellte einige Stellen fest, an denen man ansetzen konnte: Es lief im großen und ganzen darauf hinaus, daß jede Menge neuer Objekte erzeugt wurden: Bei jeder mathematischen Operation mit 3D-Vektoren wurde ein neues Objekt erzeugt, das das Ergebnis enthielt. Bei der 3D-Visualisierung sind unheimlich viele solcher mathematischen Operationen durchzuführen. Damit schwoll der Aufwand für Erzeugung neuer Objekte und Garbage Collection bereits erzeugter Objekte ab einer gewissen Auflösung des Höhenfeldes derart an, daß ich eine völlig neue Fehlermeldung der Java-Laufzeitumgebung kennenlernte: Es ist offensichtlich so, daß das Verhältnis der Zeit, die im Garbage Collector verbracht wird zu der Zeit, die die Laufzeitumgebung mit der Abarbeitung des eigentlichen Programmes zubringt, überwacht wird. Wird es zu ungünstig - lies: bringt die Laufzeitumgebung zu viel Zeit mit der Speicherverwaltung zu, wird das Programm mit einer Exception beendet.

Zeit, sich von der eigenen Garagen-Bastellösung zu verabschieden und den Profi-Werkzeugen zuzuwenden... Auch hierbei hatte ich wieder Hilfe aus dem Netz. Damit entstand die Visualisierung unter Zuhilfenahme von Java3D - viel professioneller, wie man mir nach Betrachtung der Screenshots sicher zustimmen wird:

Screenshots

Artikel, die hierher verlinken

Der Businesscard Raytracer

27.04.2023

Ich fand neulich einen Artikel, den ich als äußerst interessant einstufte und mit dem ich mich ein wenig näher beschäftigte um ihn nachzuvollziehen.

GC und beliebige Präzision in Java

24.11.2018

Das letzte Mal, als ich über Vor- und Nachteile der Durchführung mathematischer Berechnungen mit verschiedenen Datentypen schrieb, vernachlässigte ich einen Aspekt, dessen Einfluss und Wichtigkeit von der benutzten Programmiersprache und konkreten Implementierung abhängt:

GC-Minimierung in Java

05.11.2017

Auf meinen Fahrten von und zur Arbeit schweife ich hin und wieder gedanklich ein wenig ab. Hier das Ergebnis meiner jüngsten Gedankenexpedition...

Nahtlos wiederholbare Rausch-Kacheln

01.10.2017

Und wieder einmal habe ich mich in die Untiefen der Erzeugung von Daten begeben, die man mit einiger Toleranz als au der Ferne aufgenommene geographische Features bezeichnen könnte

3D-Visualisierung gesteuert mittels Beschleunigungssensor

31.07.2015

Hier mal ein kurzes Video zur Datenintegration mit dWb+

Java3D Bug in großen TriangleStrips

17.07.2013

Nachdem ich ein wenig mit meinem Landschaftsgenerator und der neuen Visualisierung herumgespielt hatte, bemerkte ich, daß dabei Artefakte auftraten - und zwar ausschließlich unter Windows. Dem muß man auf den Grund gehen...

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Multi-User-WebDAV, Docker, GitHub

    17.11.2019

    Nachdem ich mich in letzter Zeit verstärkt mit Docker und dem zugehörigen Ökosystem beschäftige, habe ich begonnen, verschiedenste Dienste in Containern zu testen um zu sehen, ob in manchen Fällen LXC oder KVM nicht doch die bessere Wahl wäre...

    Weiterlesen...

Neueste Artikel

  • Migration der Webseite und aller OpenSource Projekte

    In eigener Sache...

    Weiterlesen...
  • AutoHideToolbar für Java Swing

    Ich habe eine neue Java Swing Komponente erstellt: Es handelt sich um einen Wrapper für von JToolBar abgeleitete Klassen, die die Werkzeugleiste minimieren und sie nur dann einblenden, wenn der Mauszeiger über ihnen schwebt.

    Weiterlesen...
  • Integration von EBMap4D in die sQLshell

    Ich habe bereits in einem früheren Artikel über meine ersten Erfolge berichtet, der sQLshell auf Basis des bestehenden Codes aus dem Projekt EBMap4D eine bessere Integration für Geo-Daten zu spendieren und entsprechende Abfragen, bzw. deren Ergebnisse auf einer Kartenansicht zu visualisieren.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.