Nachdem ich in letzter Zeit mit Visualisierungsalgorithmen aus meiner Jugend und alternativen Visualisierungen für generierte Landschaften experimentiert habe, habe ich nunmehr beides gleichzeitig getan und den guten alten Voxel-Algorithmus wieder entstaubt.
Daserste Mal kam ich mit dieser Methode der Visualisierung durch das Spiel Comanche in Berührung. Damals war diese Art der 3D-Graphik revolutionär. Ich erinnere mich noch gut daran, wir wir einfach in den Hubschrauber gestiegen sind und geflogen - ohne irgendjemanden abzuschießen oder an die Missionsziele zu denken - einfach, weil es so unerhört und neu war diesen nie gekannten Detailgrad in einer dreidimensionalen Darstellung zu erleben:
Beispiel aus dem Spiel Comanche
Nun habe ich mir überlegt, ob ich diese Variante der Visualisierung nicht auch mit meinen generierten Höhenfeldern kombinieren könnte - speziell seitdem ich solche erzeugen kann, die man nahtlos aneinanderreihen kann.
Gesagt - getan. Allerdings ist es bei einem gnadenlosen Opportunisten wie mir natürlich so, dass ich zunächst nach bereits bestehenden Implementierungen suche, die ich mir zu Nutze machen kann. Ich fand auch eine: Auf der Webseite, die eigentlich eine JavaScript-Demo diesesVerfahrens ist findet sich auch eine Java-Implementierung.
Diese habe ich genommen und heftig verändert: Die Beschränkung auf Comanche-Maps und Texturen flog als erstes weg, daraufhin habe ich die Berechnung hinsichtlich Lookup-Tables und lokaler Variablen optimiert, die Option hinzugefügt, die Blickrichtugn von der Flugrichtung zu trennen, die Abhängigkeit vom Java-Applet-Mechanismus entfernt und die Möglichkeit hinzugefügt, beliebige - auch nicht-quadratische Heightfields zu laden und für diese mittels einer festgelegten Colormap eine Textur zu generieren. All das wurde um die Darstellung einer Colormap erweitert und als Visualisierungsmodul in dWb+ integriert:
Generierte Landschaft - visualisiert mittels Voxels
Anschließend (und wegen der indiskutablen Framerate in hohen Auflösungen) erweiterte ich die Implementierung durch die Möglichkeit, die Berechnung eines Frames auf mehrere parallele Threads aufzuteilen.
07.09.2021
Inspiriert durch einen Fund im Internet habe ich versucht, meinen Landschaftsgenerator um einen weiteren Renderer zu ergänzen.
Fährnisse des Buildprozesses unter Windows
17.07.2019
Nachdem ich begonnen hatte, mich mit der Beschleunigung der Berechnung des Mandelbrot-Fraktals unter Zuhilfenahme der Shadereinheiten in Graphikkarten zu beschäftigen und erste Erfolge feiern konnte, wollte ich das mal auf einer richtigen Graphikkarte ausprobieren...
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Git(lab|hub) Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
Ich bin heute nochmal inspiriert worden, weiter über die Trojan Source Vulnerability nachzudenken. Meiner Meinung nach bestehen hier noch Probleme - speziell bei Nutzereingaben oder Daten, die über externe Schnittstellen ampfangen werden.
Weiterlesen...Ich habe die auf OpenStreetMap basierende OpenSource Navigationslösung Graphhopper in einen Docker-Container gepackt und als neuestes Mitglied in meinem Docker-Zoo willkommen geheißen.
Weiterlesen...Ich habe neulich über eine Möglichkeit berichtet, SQLite mittels der sQLshell und Beanshell-Skripten um SQL-Funktionen zu erweitern. In diesem Artikel versprach ich auch, über eine solche Möglichkeit für Aggregatfunktionen zu berichten.
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.