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 Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

Neueste Artikel

  • SQL Funktionen in SQLite als BeanShell-Scripts

    Ich habe bereits hin und wieder über Erweiterungen der sQLshell berichtet, die bestimmte spezifische, proprietäre Features des jeweiligen DBMS in der sQLshell verfügbar machen.

    Weiterlesen...
  • Spieleengine IX

    Es gibt seit Ewigkeiten mal wieder Neues von meiner eigenen Spieleengine!

    Weiterlesen...
  • Neue Version plantumlinterfaceproxy napkin look

    Es gibt eine neue Version des Projektes plantumlinterfaceproxy - Codename napkin look.

    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, muß 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 GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.