Erstellen eines Landscapes mit externer Heightmap

  • Hi Leute,


    ich wollte mich gern mal mit Landscapes beschäftigen.
    Jetzt bin ich durch die Doku drauf gestoßen, dass man externe Heightmaps importieren kann.
    Ich habe jetzt mit dem Programm QLandkarte GT mal ein Screenshot von einem Kartenausschnitt der Höhendaten gemacht. (Die Höhendaten muss man erst aufbereiten und importieren)
    Diesen habe ich in GIMP2 bearbeitet und die Farben invertiert (da es dem UE4 Prinzip entgegengesetzt war mit weiß-schwarz)und als 8-bit Graubild in PNG gespeichert. Eigentlich will die UE4 16 bit aber das kriege ich in GIMP2 irgendwie nicht hin.
    Ich kann jetzt zwar meine Heightmap importieren aber die Höhenunterschiede sind extrem!
    Irgendwie fehlt mir die Möglichkeit zu sagen wie der Höhenunterschied der Graustufen ist.
    Gibts da keine Einstellmöglichkeiten?
    Bin für jeden Hinweis dankbar.


    So sieht´s aus:
    [Blockierte Grafik: http://forum.unrealengine4.de/Attachment/93-Unbenannt-png/]


    VG
    Darkentik


    Quellen:
    QLandkarte GT
    QLandkarte GT Wiki
    Working with SRTM Data (height data)
    Höhendaten

  • Ohne Experte in diesem Gebiet zu sein möchte ich behaupten, dass du keine Einstellungsmöglichkeiten für die Höhenunterschiede brauchst, sondern du brauchst detailiertere Graustufen, da sich deine einfach zu krass unterscheiden. Hab da nicht viel Ahnung von aber das sieht so aus als wär dein Programm für sowas "ausgelegt" und nur durch invertieren wird das mit sicherheit auch nicht anders.

  • Ich hatte erst gedacht das über Google Earth zu machen aber da braucht man auch wieder Plugins und ach weiß der Geier alles.
    Dass es so kompliziert ist hätte ich nie gedacht.
    Ich habs halt einfach mal drauf angelegt und mit dem Programm probiert.
    In dem Gebiet bin ich ja total Anfänger und weiß überhaupt nicht was benötigt wird und was es alles für Zauberei in dem Bereich gibt, deswegen frage ich ja jetzt hier nach.
    Wo sieht man denn ob ein Programm für sowas ausgelegt ist? Bzw. was benötigt man alles für Parameter für eine ordentliche Heightmap?

  • Was den Screenshot angeht, da wäre deine generierte Heightmap nützlicher.


    Die frage ist halt, was wirft er dir hinten raus und was macht dein Converter daraus.
    Habe gerade mal schnell gegoogled und nen (leider relativ alten und auch nicht für UE) post über das Thema gefunden.
    Wie gesagt bin selbst kein Experte in dem Kram, aber könnte es sein, dass die Skalierung einfach zu krass ist? Sprich du ein zu großes Terrain auf einer zu kleinen Map abbilden willst.


    http://forum.simutrans.com/index.php?topic=2210.0

  • Das mit dem zu großen Gebiet auf zu kleinem terrain ist ein guter Hinweis. Ich glaube da liegt schon der Fehler.
    Ich probiere es nochmal aus mit einem kleinen 1x1km Terrain am besten.


    *UPDATE*
    Also QLandkarte GT kann man nicht benutzen, sobald man weiter reinzoomed um eben ein kleineres Gebiet zu benutzen werden andere Geodaten eingeblendet, die ich nicht ausgestellt bekomme und so kann ich kein vernüftigen Screenshot der Höhendaten machen.


    Was kann man an dieser Stelle noch verwenden?
    Ich hab gelesen mit WorldMachine soll man wohl ganz gut in der Lage sein Landscapes zu erzeugen.
    Kann hier jmd von euch weiterhelfen?

    • Offizieller Beitrag

    Wie du sicher weist stehen die Farben Weiß die niedrigste höhe. Der Trick ist also zb alles was weiß ist dunkler zu machen somit wird alles was niedrig ist höher oder du machst alles was schwarz ist heller verschiebst die Farbe also in Richtung weiß ) Weiß, Grau, Schwarz)Wie macht man das ?Ich kenn mich mit Gimp nicht aus aber in PS kann man dies über Levels bzw in Deutsch "Tonwert Korrektur" machen.Terrains kannst du zb auch den Cloud Filter bzw dem Wolken Filter erstellen:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
    kannst du wie gesagt über Levels die höhen steuern.Ich finde es aber besser die Hightmap aus einem Mesh zb Maya hrraus zu baken. Auch in Maya kann ich zb eine Cloudmap erstellen und aus dieser eine Mesh erstellen und dann zb auch noch bearbeiten. Das Terrain Bake ich dann als Hightmap auf eine Plane und erhalte dadurch die Hightmap.

  • Beim importieren der Heightmap die Scale auf der Z achse kleiner machen ; in der UE4 documentation gibts sogar irgendwo ne "Formel" was man rechnen muss damit es der selbe höhenunterschied bleibt.
    So ist ne scale von 100 glaub ich von -256 bis +256

  • Ich habe sowolh Maya 2015 als auch Blender, wobei ich mit Maya besser zurecht komme.
    Als Grafikprogramm habe ich das Photoshop CS2.

    Zitat

    Ich finde es aber besser die Hightmap aus einem Mesh zb Maya hrraus zu baken. Auch in Maya kann ich zb eine Cloudmap erstellen und aus dieser eine Mesh erstellen und dann zb auch noch bearbeiten. Das Terrain Bake ich dann als Hightmap auf eine Plane und erhalte dadurch die Hightmap.


    Also:
    - Heightmap aus Maya baken?
    Was heißt baken? Das höre ich ständig in dem bereich Materials und Co. Ich vermute sowas wie erzeugen/erstellen?
    - Cloudmap in Maya erstellen und aus dieser eine Mesh machen?
    1. Eine Cloudmap ist ein Bild mit wolkenähnlichen Malerein drauf?
    2. Was soll das dann für ein Mesh werden? Meshes gibts doch nur in UE4 oder nennt man 3D Objekte in 3D Programmen auch Meshes?

    Zitat

    Das Terrain Bake ich dann als Hightmap auf eine Plane


    Hier bin ich völlig raus, keine Ahnung was du da meinst.


    Ich entschuldige mich für mein Nichtwissen, aber ich bin eher der Coder und nicht der Artist. Grundlegende Sachen kriege ich auch noch hin aber bei dem ganzen speziellen Kram komm ich im Moment nicht mit.
    Ich würde mich gerne in die Themen Heightmap und Materials und so einarbeiten aber weiß gar nicht wo man da anfangen soll, da ich mit der Materie bisher nicht wirklich was zu tun hatte und mich nicht auskenne.

    • Offizieller Beitrag

    Also Baken bedeutet das übertragen von Informationen eine Highpoly Meshs auf ein Lowpoly Mesh sein.


    Baken kann man eine ganze Menge zb kann man die Normal Baken das bedeutet dann man erstellst zb ein Highpoly Mesh einer Statue. Ab einem bestimmten Punkt wenn das Mesh eine Polygonanzahl erreicht hat wo es noch als Lowpoly durchgeht speichert man das Lowpoly ab. Und arbeitet mit dem Mesh weiter. Man fügt zb Support Edges dazu Smooth es dann und überträgt dann die Informationen die du dazu modelliert hast als Normal auf das Lowpoly. Somit sieht dein Mesh so aus als hätte es mehr Geometrie als es tatsächlich hat.


    Das selbe kannst du auch mit einem Terrain machen. Das terrain kannst du zb durch Shader in Maya erstellen. Das Mesh als Terrain kannst du so aber nicht verwenden der haupt Grund dafür ist wenn du zb ein Terrain mit einer Größe von 4096* 4096 in der Maya einheit erstellt dann liegt es ja nahe das du darauf eine 4k Textur also mit 4096 *4096 Pixel drauf machst.
    Das würde dann bedeuten das du Pro qm auf einem Terrain ein Pixel hast. Das ist natürlich absolut unakzeptabel.
    Darum brauchst du für dein Terrain Vertex paint. Du kannst auch deine Textur in Maya aus der Hightmap herraus erstellen. Dann müsstest du diese Textur irgend wie als Slatmap exportieren aber wie das geht kann ich dir leider auch nicht genau sagen.
    Ein anderer Grund warum man in Engines Hightmap benutzt und kein 3D Mesh als Terrain liegt daran das die Terrains aus Performance gründen tesselliert werden. Vielleicht weißt du was ein tessellation Shader ist ?
    Besser bekannt auch unter der Möglichkeit Displacement maps in spielen zu verwenden. Genau so funktionieren auch Terrain bei Computer spielen.
    Im UE Viewport werden Terrains zwar in 3D mit Täler Bergen usw dargstellt aber in Wahrheit sind Terrains nur Planes mit einer Hightmap (Also sie sind in wirklichkeit flach)
    Erst wenn du das Spiel startet wird das Terrain aufgebaut und zwar nur dort wo du mit der Kamera hinschaust. Wenn du deine Kamera wegdrehst wird alles hinter dir wieder Flach. Das Spieler bekommst du das nicht mir aber duch dieses Verfahren ist es eben Möglich durch Hightmaps sehr sehr perfromant komplexe Terrains darzustellen wo man für die textur auf Vertexpaint zurückgreift. Alles was du via Vertexpaint auf dein Terrain Pinselt wird in einer Splatmap gepeichert. Eine Splatmap ist also eine art Informationskarte wo drinsteht wo auf deinem Terrain welche Textur hin muss.
    Deswegen ist es eben Sinnvoll keine Textur aufs Terrain zu machen sondern eine Splatmap zu exportieren.


    Das soll zumindest mal eine Erklärung sein wie das technisch funktioniert.

  • Ok danke dir. Das bestätigt meine Vermutung.
    Was mir aufgefallen ist bei meiner 2017x2017 Map, dass man das Licht nicht mehr so ohne weiteres builden kann.
    Da kommt eine Meldung mit dem Fehler:
    "Performance Warning No importance volume found and the scene is so large that the automatically synthesized volume will not yield good results. Please add a tightly bounding lightmass importance volume to optimize your scene's quality and lighting build times."
    [Blockierte Grafik: http://forum.unrealengine4.de/…nd-scene-is-toolarge-png/]


    Das muss ich mir erstmal in der Doku raussuchen und durchlesen.


    Lösung


    Einfach ein "Lightmass Importance Volume" hinzufügen und so groß skalieren, dass das gesamte Landscape drin ist.
    [Blockierte Grafik: http://forum.unrealengine4.de/…massImportanceVolume-PNG/]

  • Hallo.
    Ich hänge mich hier einfach einmal mit einer Frage an.
    Habe mir heute einmal das UE Landscape-Tool angesehen und muss sagen, das ist mir ein wenig zu umständlich/ungenau, weshalb ich die Kartenerstellung auch lieber über eine Heightmap machen würde.
    Ich dachte mir ich erstelle eine Landschaft in 3ds max - damit komm ich gut und schnell zurecht. Danach render ich im topview einen Z-Depth Pass raus (so ein, für mich einfacher, Lösungsvorschlag in einem Forum gefunden). Herauskommen sollte eine schöne Heightmap.
    So fern ist ja noch alles klar.
    Wenn ich jetzt eine Karte mit 2017x2017 (in UE) machen will kann ich zwar in 3ds max die Maße für das Mesh angeben (2017m x 2017m), aber was wäre das dann als Renderausgbe für die Map? Also die Maße in Pixel? Kann ja nicht 2017px x 2017px sein, oder? Das wäre ja 1px pro qm und vermutlich ziemlich hässlich..
    Weiß da jemand was optimal ist?


    Vielen Dank im voraus. :)


    Grüße,
    Gerald

  • Die Frage habe ich mir auch schon gestellt. Denn wenn ich in Photoshop die Heightmap mache und das Bild 2017x2017px groß mache dann sind das wirklich 2x2km.
    Aber ich würde dir vielleicht auch mal das Programm WorldMachine empfehlen.
    Ich habe mich da gerade fast 2 Stunden reingearbeitet und Videos auf Youtube angeschaut und bin begeistert wie schnell und genial man Landscapes erstellen kann.

  • Ja, das habe ich auch schon gesehen, aber mein Vorteil bei 3ds max ist eben, dass ich damit sehr gut umgehen kann und in der Zeit in der ich mich in ZB Worldmachine einarbeite, ich die Map in 3ds max vermutlich schon fertig hätte.
    Die Frage ist nur wie groß (px x px) die Renderausgbe sein muss.


    x px * x px = 2017m * 2017m
    x = ?


    *g*


    Edit: wenn du dir in Worldmachine eine Heightmap ausgibst, die 2017m x 2017m groß ist (kann ja auch testweise komplett flach sein) und du wirfst die Datei in Photoshop, dann könntest du das ja herausfinden!?
    Wäre toll, wenn du das machen würdest und das Ergebnis hier rein stellst :)


    Edit2: oh gott! ich sollte langsam mal schlafen gehen... -.-
    danke, dass du mir die Frage ja schon beantwortet hast! Hab da einfach drüber gelesen.
    2017px * 2017px = 2017m * 2017m

  • Hm, hab mich auch schon vor Jahren viel damit beschäftigt Heightmaps zu erstellen und auch nach Tools gesucht, möglichst kostenlos damals, aber man findet da nur noch wenig aktuelles, alles älteres Zeug.


    World Machine ist zwar ganz gut, aber 250$ sind auch nicht ohne, weil die 99$ Version ist doch arg eingeschränkt und keine Tileable Maps sind damit erstellbar (also mehrere Heightmaps, die man zusammen setzt um noch größere Gebiete zu haben).


    Ich überlege mir vielleicht World Creator zu holen, auf Steam kostet das knapp 93 Euro, hat nur wenige Einschränkungen und die Indie kostet nur um die 150 Euro. Aber auch die Steam Version darf wie die Indie Version Kommerziell genutzt werden, das geht bei der 99$ World Machine Version nicht.


    http://www.cloddy.com/index.php/wc-purchase


    Ist übrigens eine Deutsche Firma aus Fulda. ^^


    Eine Demo Version gibt es auf der Seite auch und Tuts wie man ihn mit UE4 nutzt gibt es wohl auch.