{"id":8692,"date":"2022-08-12T14:00:27","date_gmt":"2022-08-12T12:00:27","guid":{"rendered":"https:\/\/vielzutun.ch\/wordpress\/?p=8692"},"modified":"2022-08-17T15:55:22","modified_gmt":"2022-08-17T13:55:22","slug":"der-alpstein-als-digitales-3d-gelaendemodell","status":"publish","type":"post","link":"https:\/\/vielzutun.ch\/wordpress\/?p=8692","title":{"rendered":"Der Alpstein als digitales 3D Gel\u00e4ndemodell"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ich bin noch zu Zeiten der ersten StarWars Kinofilme sozialisiert worden. Die Animationen der Verfolgungsjagden durch dreidimensionale Schluchten des Todessterns hatten mich damals schon m\u00e4chtig beeindruckt. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Bollenwees.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Bollenwees_klein.png\" alt=\"\" class=\"wp-image-8773\" srcset=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Bollenwees_klein.png 1024w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Bollenwees_klein-300x157.png 300w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Bollenwees_klein-768x401.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption>Umgebung des Bergasthauses &#171;<a rel=\"noreferrer noopener\" href=\"https:\/\/map.schweizmobil.ch\/?lang=de&amp;photos=yes&amp;logo=yes&amp;detours=yes&amp;season=summer&amp;bgLayer=pk&amp;resolution=1&amp;E=2750501&amp;N=1235494\" target=\"_blank\">Bollenwees<\/a>&#187; im Alpstein, auf der Basis von H\u00f6hendaten von <a rel=\"noreferrer noopener\" href=\"https:\/\/www.swisstopo.admin.ch\/de\/geodata\/height\/alti3d.html\" target=\"_blank\">SwissALTI3D, Swisstopo<\/a>; <br>Bildmitte oben: Abstieg von der Saxer L\u00fccke;<br>An der ca. 16:00 Position: der F\u00e4lensee;<br>Die roten &#171;Stifte&#187; visualisieren normalerweise unsichtbare, jedoch f\u00fcr Schattierungsberechnungen ben\u00f6tigte Normalenvektoren. <br>Die dunkelblaue Linie markiert die 1&#8217;500 m H\u00f6henlinie.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die SpaceMouse zur 6DOF-Steuerung der 1st-person Perspektive habe ich ja nun &#171;<a href=\"https:\/\/vielzutun.ch\/wordpress\/?p=8554\" target=\"_blank\" rel=\"noreferrer noopener\">im Griff<\/a>&#171;. Fehlt nur noch ein geeignetes Gel\u00e4nde um da wie Luke Skywalker virtuell durchzusausen. Es sollte kein zuf\u00e4llig generiertes sein, sondern m\u00f6glichst ein reales und mir zumindest grob bekanntes Revier abbilden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nach einiger Recherche stiess ich auf das Schweizer Bundesamt f\u00fcr Landestopographie &#171;Swisstopo&#187;. Dieses stellt u.a. das Produkt <a href=\"https:\/\/www.swisstopo.admin.ch\/de\/geodata\/height\/alti3d.html\" target=\"_blank\" rel=\"noreferrer noopener\">swissALTI3D<\/a> (bei Einhaltung der <a rel=\"noreferrer noopener\" href=\"https:\/\/www.swisstopo.admin.ch\/de\/home\/meta\/konditionen\/geodaten\/ogd.html\" target=\"_blank\">Lizenzbedingungen<\/a>) zur kostenfreien Nutzung per download zur Verf\u00fcgung. Die Abdeckung umfasst das vollst\u00e4ndige Gebiet der Schweiz und Liechtensteins. Die Daten werden in quadratischen &#171;Kacheln&#187; von 1 km Kantenl\u00e4nge angeboten. Die maximale angebotene Aufl\u00f6sung von 0,5 Metern \u00fcbertrifft dabei alles mir bisher Bekannte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Kehrseite der enorm hohen Detaillierung ist ein entsprechendes Datenvolumen, welches s\u00e4mtliche Komponenten eines Computersystems  (Netzwerkanbindung, Hauptspeicher, Festplattenspeicher, CPU, GPU) so verarbeiten k\u00f6nnen sollten, da\u00df ein Anwender im Endergebnis mit einer interaktiven Bildwiederholrate von mindestens 30 fps durch die Szene navigieren k\u00f6nnen sollte.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Numbers, please!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00dcber welche Gr\u00f6\u00dfenordnungen rede wir? Ich habe mich aus allen von Swisstopo zum Download angebotenen Dateiformaten wegen der f\u00fcr Menschen leichten Lesbarkeit f\u00fcr &#171;ASCII X,Y,Z&#187; in 0,5 m Aufl\u00f6sung entschieden. Die Darstellung und Speicherung von Fliesskommazahlen als Zeichenketten ist zwar speicherintensiv und aufw\u00e4ndig zu dekodieren, aber ich war zun\u00e4chst an schnellen Ergebnissen interessiert. Einer Antwort auf die Frage, ob es sich lohnt, das Projekt ernsthaft zu verfolgen. Da\u00df hier Optimierungspotenzial schlummert, ist mir bewusst.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So sehen die ersten (und letzten) Zeilen einer solchen Kachel aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>X Y Z\n2748000.25 1233999.75 1789.25\n2748000.75 1233999.75 1788.82\n2748001.25 1233999.75 1788.57\n2748001.75 1233999.75 1788.17\n...\n...  \/\/ insgesamt 4 Millionen Datenzeilen \n...\n2748998.25 1233000.25 1717.90\n2748998.75 1233000.25 1717.75\n2748999.25 1233000.25 1717.53\n2748999.75 1233000.25 1717.34<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eine quadratische Kachel mit 1 km Kantenl\u00e4nge erfordert bei 0,5 m Aufl\u00f6sung ein Raster aus 2&#8217;000 * 2&#8217;000 =  4&#8217;000&#8217;000 Datenpunkten. Jede der oben gezeigten Zeilen aus dem ASCII File entspricht einem Datenpunkt mit seinen X,Y,Z Koordinaten. Insgesamt resultiert eine Dateigr\u00f6\u00dfe von 124&#8217;000&#8217;007 Byte, entsprechend <strong>124 MB<\/strong> pro Kachel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00e4mtliche Werte haben die Einheit [m], der Punkt entspricht dem Dezimaltrennzeichen. X- und Y-Werte beziehen sich auf die <a href=\"https:\/\/www.swisstopo.admin.ch\/de\/wissen-fakten\/geodaesie-vermessung\/bezugsrahmen\/lokal\/lv95.html\" target=\"_blank\" rel=\"noreferrer noopener\">Schweizer Landesvermessung aus dem Jahr 1995<\/a>, gem\u00e4\u00df folgendem Schema:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.swisstopo.admin.ch\/content\/swisstopo-internet\/de\/topics\/survey\/reference-frames\/local\/lv95\/_jcr_content\/contentPar\/textimage_115079388\/image.transform.1557235700867\/noresize\/image.STP_BezugsrahmenLV95.png\" alt=\"\"\/><figcaption><a href=\"https:\/\/www.swisstopo.admin.ch\/content\/swisstopo-internet\/de\/topics\/survey\/reference-frames\/local\/lv95\/_jcr_content\/contentPar\/textimage_115079388\/image.transform.1557235700867\/noresize\/image.STP_BezugsrahmenLV95.png\" target=\"_blank\" rel=\"noreferrer noopener\">Bildquelle<\/a><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die Z-Werte geben die <a href=\"https:\/\/www.swisstopo.admin.ch\/de\/wissen-fakten\/geodaesie-vermessung\/bezugsrahmen\/lokal\/lv95.html\" target=\"_blank\" rel=\"noreferrer noopener\">ellipsoidische H\u00f6he<\/a> an.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die Visualisierung der Gel\u00e4ndedaten verwende ich die Three.js Bibliothek, im Speziellen eine <a rel=\"noreferrer noopener\" href=\"https:\/\/threejs.org\/docs\/#api\/en\/geometries\/PlaneGeometry\" target=\"_blank\">THREE.PlaneGeometry()<\/a>. Diese stellt die n\u00f6tigen Datenstrukturen bereit zur Aufnahme von Positionsdaten der beteiligten Punkte (vertices), sowie zus\u00e4tzlich die Zerlegung der Ebene in ein zusammenh\u00e4ngendes Gitternetz aus Dreiecksfl\u00e4chen, inklusive der Index-Zuordnung, durch welche vertices jede Dreiecksfl\u00e4che begrenzt wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mit den vorliegenden Daten l\u00e4sst sich eine Kachel bisher lediglich als Drahtgittermodell darstellen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Drahtgitter.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"717\" src=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Drahtgitter-1024x717.png\" alt=\"\" class=\"wp-image-8715\" srcset=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Drahtgitter-1024x717.png 1024w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Drahtgitter-300x210.png 300w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Drahtgitter-768x537.png 768w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Drahtgitter-1536x1075.png 1536w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Drahtgitter-2048x1433.png 2048w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Drahtgitter-1200x840.png 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption>Eine Kachel (1 km<sup>2<\/sup>) in reduzierter Aufl\u00f6sung als Drahtgittermodell<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Art der Darstellung reicht aus, um einen ersten Eindruck von der Topographie zu erhalten. Die unvermeidliche Transparenz eines Drahtgitters macht aber die Unterscheidung zwischen nah und fern, Vorder- und R\u00fcckseite u.U. mehrdeutig und verwirrend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Besser w\u00e4re eine fl\u00e4chige und schattierte Darstellung, weil hier die n\u00e4her am Betrachter liegenden Dreiecksfl\u00e4chen evtl. dahinterliegende Fl\u00e4chen verdecken w\u00fcrden, und Helligkeitsnuancen aufgrund unterschiedlich ausgerichteter Fl\u00e4chen- oder Eckpunkt<strong>normalen<\/strong> relativ zur Lichtquelle den plastischen 3D-Eindruck verst\u00e4rken w\u00fcrden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die bei Swisstopo erh\u00e4ltlichen Daten enthalten zwar keine Normalen-Information, aber zum Gl\u00fcck lassen sich diese berechnen. Die Datenstrukturen von THREE.PlaneGeometry() sind zudem bereits auf die Aufnahme von vertex normal Daten pro vertex eingerichtet. Man muss sie allerdings zuvor berechnen, und Three.js bietet sogar eine passende Funktion daf\u00fcr an:  <a rel=\"noreferrer noopener\" href=\"https:\/\/threejs.org\/docs\/#api\/en\/core\/BufferGeometry.computeVertexNormals\" target=\"_blank\">computeVertexNormals()<\/a> . <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Aufruf dieser Funktion ist zwar nur ein Einzeiler, dahinter verbergen sich jedoch aufwendige Berechnungen, welche f\u00fcr jede einzelne Dreiecksfl\u00e4che durchgef\u00fchrt werden m\u00fcssen. Bisher hatte ich nur \u00fcber 2&#8217;000 x 2&#8217;000 = 4 millionen Eckpunkte in der h\u00f6chsten Aufl\u00f6sungsstufe gesprochen. Diese regelm\u00e4\u00dfig auf Rasterschnittpunkten angeordneten Eckpunkte umschlie\u00dfen 1&#8217;999 x 1&#8217;999 quadratische Zellen, von denen jede nochmals diagonal in zwei Dreiecksfl\u00e4chen unterteilt ist. In der vollen Aufl\u00f6sung von 0,5 Metern sind dies<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1&#8217;999 x 1&#8217;999 x 2 = 7&#8217;992&#8217;002 Dreiecksfl\u00e4chen pro Kachel.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr <strong>jede<\/strong> Dreiecksfl\u00e4che, begrenzt durch die Eckpunkte &#171;A&#187;, &#171;B&#187; und &#171;C&#187; werden in der Funktion computeVertexNormals()<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>die Differenzvektoren D1 =&#187;A&#187; &#8211; &#171;B&#187; und D2 = &#171;B&#187; &#8211; &#171;C&#187; gebildet,<\/li><li>das Skalarprodukt aus D1 und D2 berechnet, welches definitionsgem\u00e4\u00df senkrecht (also &#171;normal&#187;) auf der durch &#171;A&#187;, &#171;B&#187; und &#171;C&#187; aufgespannten Ebene steht.<\/li><li>Die so ermittelte <strong>Fl\u00e4chen<\/strong>normale wird auf jede <strong>Eckpunkt<\/strong>normale in den Punkten &#171;A&#187;, &#171;B&#187; und &#171;C&#187; aufaddiert, so da\u00df sich schliesslich f\u00fcr jeden Eckpunkt die aus den Fl\u00e4chennormalen aller angrenzenden Fl\u00e4chen <strong>gemittelte<\/strong> Eckpunktnormale ergibt.<\/li><li>Die Eckpunktnormalen (vertex normals) werden schlie\u00dflich noch normiert, d.h., auf die L\u00e4nge &#171;1&#187; gebracht.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Und das f\u00fcr jede der knapp 8 millionen Eckpunkte einer Kachel. Das Ergebnis sieht dann beispielsweise so aus:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Phong.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"701\" src=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Phong-1024x701.png\" alt=\"\" class=\"wp-image-8723\" srcset=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Phong-1024x701.png 1024w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Phong-300x205.png 300w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Phong-768x526.png 768w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Phong-1536x1051.png 1536w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Phong-2048x1402.png 2048w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Phong-1200x821.png 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption>Eine (1) Kachel in reduzierter Aufl\u00f6sung wie oben, Phong-schattiert<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Schlie\u00dflich habe ich noch eine <a rel=\"noreferrer noopener\" href=\"https:\/\/de.wikipedia.org\/wiki\/On-the-fly\" target=\"_blank\">on-the-fly<\/a> generierte H\u00f6henlinien-Textur (Rasterweite: 100 m) aufgebracht, die meiner Meinung nach die Einsch\u00e4tzung des Gel\u00e4ndes (welche Punkte befinden sich auf gleicher H\u00f6he, bzw. liegen wieviel h\u00f6her oder tiefer) erheblich vereinfacht:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"661\" src=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Ho\u0308henlinien-1024x661.png\" alt=\"\" class=\"wp-image-8727\" srcset=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Ho\u0308henlinien-1024x661.png 1024w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Ho\u0308henlinien-300x194.png 300w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Ho\u0308henlinien-768x496.png 768w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Ho\u0308henlinien-1536x992.png 1536w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Ho\u0308henlinien-2048x1323.png 2048w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/Kachel_Ho\u0308henlinien-1200x775.png 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption>Eine (1) Kachel in reduzierter Aufl\u00f6sung, Phong-schattiert und mit H\u00f6henlinien angereichert<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wir erinnern uns: die urspr\u00fcngliche Dateigr\u00f6\u00dfe einer ASCII-codierten Datei mit reinen Positionsdaten lag bei 124 MB. Die Zahl ergibt sich aus 4 millionen Zeilen zu je 31 Zeichen (je 1 Byte) pro Datenzeile. Wer&#8217;s nicht glaubt, kann oben nachz\u00e4hlen &#8211; dabei die nicht druckf\u00e4higen Zeichen &#171;CR&#187; und &#171;LF&#187; an jedem Zeilenende mit ber\u00fccksichtigen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nach Einlesen in die Three.js Datenstrukturen einer THREE.PlaneGeometry() ergibt sich folgender Speicherbedarf:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Positionsdaten: drei x-, y- und z-Komponenten zu je vier Byte\/vertex<\/li><li>Eckpunkt Normale: drei x-, y- und z-Komponenten zu je vier Byte\/vertex<\/li><li>Texturkoordinaten: zwei u- und v-Komponenten zu je vier Byte\/vertex<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Insgesamt<\/strong> also (3 + 3 + 2) = 8 x 4 = 32 Byte\/vertex. Das 4 millionen mal, macht <strong>128 MB<\/strong>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Egal, wie effizient (z.B. bin\u00e4r) man die Positionsdaten durch eine Art &#171;Vorkompilierung&#187; in einer Datei abspeichert: in Three.js kommt man an dem genannten Speicherbedarf von 128 MB\/Kachel einfach nicht vorbei &#8211; in der maximalen Aufl\u00f6sung. Das ist eine wichtige Erkenntnis die noch eine Rolle spielen wird!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gemessen an meinen eingangs formulierten Anspr\u00fcchen (interaktive Bildrate von mindestens 30 fps) erf\u00fcllt mein Ansatz auf meinem inzwischen etwas angejahrten iMac aus Late 2014 &#8230;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"616\" src=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/myMac-1024x616.png\" alt=\"\" class=\"wp-image-8754\" srcset=\"https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/myMac-1024x616.png 1024w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/myMac-300x181.png 300w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/myMac-768x462.png 768w, https:\/\/vielzutun.ch\/wordpress\/wp-content\/uploads\/2022\/08\/myMac.png 1176w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption>Meine Entwicklungsmaschine<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8230; alle Erwartungen. 60 fps werden unter allen Umst\u00e4nden eingehalten. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damit w\u00e4chst nat\u00fcrlich der Appetit: die virtuelle Fahrt durch &#171;Schluchten&#187; ist im Alpstein auf einer 1 km x 1 km Kachel kaum m\u00f6glich. Also w\u00fcrde ich gerne mehrere Kacheln gleichzeitig darstellen. Ob und wie das evtl. gelingen kann, beschreibe ich in einem Folgeartikel.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich bin noch zu Zeiten der ersten StarWars Kinofilme sozialisiert worden. Die Animationen der Verfolgungsjagden durch dreidimensionale Schluchten des Todessterns hatten mich damals schon m\u00e4chtig beeindruckt. Die SpaceMouse zur 6DOF-Steuerung der 1st-person Perspektive habe ich ja nun &#171;im Griff&#171;. Fehlt nur noch ein geeignetes Gel\u00e4nde um da wie Luke Skywalker virtuell durchzusausen. Es sollte kein &hellip; <a href=\"https:\/\/vielzutun.ch\/wordpress\/?p=8692\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;Der Alpstein als digitales 3D Gel\u00e4ndemodell&#8221; <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_stc_notifier_status":"","_stc_notifier_sent_time":"","_stc_notifier_request":false,"_stc_notifier_prevent":false,"_stc_subscriber_keywords":"","_stc_subscriber_search_areas":"","footnotes":""},"categories":[184],"tags":[66,190,191,185,186,178],"class_list":["post-8692","post","type-post","status-publish","format-standard","hentry","category-computergrafik","tag-alpstein","tag-dem","tag-digital-elevation-model","tag-spacemouse","tag-spacenavigator","tag-three-js"],"_links":{"self":[{"href":"https:\/\/vielzutun.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/8692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vielzutun.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vielzutun.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vielzutun.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/vielzutun.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8692"}],"version-history":[{"count":58,"href":"https:\/\/vielzutun.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/8692\/revisions"}],"predecessor-version":[{"id":8778,"href":"https:\/\/vielzutun.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/8692\/revisions\/8778"}],"wp:attachment":[{"href":"https:\/\/vielzutun.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vielzutun.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vielzutun.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}