Landscape LOD Generator tes4ll

Gruftikus

Neuankömmling
Beschreibung

Mit tes4ll kann man völlig neue und individuelle Landschafts-LOD-Meshes erstellen. Dabei werden die Landschaftveränderungen aller lokal installierten Mods berücksichtigt. Hierbei greift tes4ll auf das Programm "TESAnnwyn" von Lightwave zurück, das intern aufgerufen wird.

Motivation

In Oblivion können die LOD-Meshes eigentlich nur Quad-für-Quad ersetzt werden. Daher können die folgenden Probleme auftreten:

  • The Quad-Meshes passen einfach an den Kanten nicht zusammen, da sie unabhängig voneinander erzeugt worden waren.
  • Es gibt "Wände" zwischen dem nahen Grid und den LOD-Meshes
  • Fliegende Objekte in der Ferne, da die Meshes nicht zu der "Realität" passen.
Voraussetzungen

Man benötigt TESAnnwyn

Features

  • Um die LODs zu erzeugen, trianguliert tes4ll den gesamten Worldspace in einem einzigen Schritt. Die einzelnen Quads werden erst danach aus diesem Mesh herausgeschnitten, so dass sie immer zusammen passen.
  • tes4ll benutzt ein irreguläres Netz. Im Gegensatz dazu haben die Triangel der CS-Meshes immer Ecken mit einem Vielfachen von 45 Grad. Das fällt besonders unangenehm bei den Küstenlinien auf.
  • tes4ll ist komplett konfigurierbar. Ich habe versucht, bei der Konfigurierbarkeit keine Wünsche offenzulassen.
  • Man kann einzelne Vertexpunkte setzen wo man möchte, für den Fall dass man irgendwo noch Inkonsistenzen sieht, die nicht automatisiert beseitigt werden.
  • Man kann Contourlinien hinzufügen.
  • Die Dichte der Vertexpunkte richtet sich nach einer Kombination aus diversen Algorithmen, wie z.B.:
  • Steigung und die Krümmung der Landschaft.
  • Ein "Peakfinder" für bessere Berge (ein besonderes Anliegen von mir).
  • Anpassung der Dichte aufgrund der absoluten Höhe.
  • Die Anzahl der Vertexpunkte kann insgesamt, oder per Quad gewählt werden.
  • Wenn man möchte, kann man Meshes mit Textur oder Postscipt-Dateien erstellen lassen (nicht zur Ingame-Benutzung, aber zum herumspielen)
Benutzung

Um tes4ll zu benutzen, hat man die Qual der Wahl:

  • Einfach ein Doppelklick auf eine der mitgelieferten Windows bat-Dateien (das geht schnell und einfach),
  • oder besser das Multi-Purpose-GUI benutzen (das ist die empfohlene Methode),
  • oder eine der vorgefertigten LOD-Meshes herunterladen (nicht empfohlen die die o.g. Features so nicht vollständig zum Einsatz kommen)
Zudem gibt es die Möglichkeit, das mitgelieferte Konfigurationsscript vollständig anzupassen.

Es gibt drei Windows-bat-Dateien:

  • "tes4ll_midres.bat" -> "Mittlere Auflösung", 10000 primäre Vertexpunkte (etwa 20% besser als Vanilla)
  • "tes4ll_highres.bat" -> "Hohe Auflösung", 13000 primäre Vertexpunkte (etwa 80% besser als Vanilla)
  • "tes4ll_ultimate.bat" -> "Ultimative Auflösung", 18000 primäre Vertexpunkte, zusammen mit einem sehr pingeligen "Wall-Remover".
Wenn man tes4ll direkt in das Oblivion-Data-Verzeichnis kopiert (das muss man zusammen mit TESAnnwyn tun, da dieses die esp/esm-Dateien
lesen muss), werden damit direkt die LOD meshes überschrieben (Achtung: Bitte vorher ein Backup machen). TESAnnwyn wird intern von
tes4ll aufgerufen, und erstellt automatisch (ähnlich wie TES4LODGen) die Meshes anhand der aktuellen Mod-Liste. Optionale Dateien und
Optionen werden teilweise anhand der Mod-Liste ein-, bzw. ausgeschaltet.

Ich habe z.B. eine Vertexdatei für UL Rolling Hills beigefügt (für die englische Version, für die deutsche Version bitte tes4ll_all.mpb anpassen). Andere Sachen sind noch in Arbeit.

Kompatibilität

  • tes4ll ist mit TES4LODGen und TES4qLOD kompatibel.
  • tes4ll is grundsätzlich mit allen Landschaftsmods kompatibel.
  • Derzeit ist tes4ll nicht mit dem OBGE-LLOD-System kompatibel.
Download

tes4ll@tesnexus

Credits

Grossen Dank an:

  • Lightwave für TESAnnwyn (ohne diese Vorarbeit hätte ich gar nicht erst angefangen).
  • Auryga für das viele Testen, die Bugreports, weitere Ideen und das erste GUI.
 
Zuletzt bearbeitet:
Dann sag ich hier auch nochmal danke!

Das mit Tamriel Heightmaps werde ich auch mal probieren.
64bit Version klingt auch interessant.

Aber vielleicht sollte man nicht forenübergreifend kommunizieren:)
 
Zuletzt bearbeitet:
Im Bethsoft Forum lese ich nur gutes über das Tool.
Vielen Dank, werde es bei Gelegenheit mal testen.
 
Nachdem Aurygas GUI TES4LLShell nicht mehr da ist, habe ich mein eigenes GUI geschrieben:
Multi Purpose GUI (MPGUI)

Wie schon TES4LLShell, liest MPGUI das eigentliche batch file aus, setzt die GUI-Elemente (drop-down menüs, checkboxen, etc...) dynamisch auf, und passt das Shell-Kommando entsprechend an. Da sollte die Benutzung von tes4ll stark vereinfachen. Wenn man MPGUI installiert hat, dann sollte ein Doppelklick auf die entsprechende batch-Datei (die Endung ist nun *.mpb) reichen.

Obwohl ich MPGUI als Ersatz für Aurygas TES4LLShell geschrieben habe, kann MPGUI auch als eigenständige Ressource benutzt werden. Hilfreich immer dann, wenn Kommandozeilen-orientierte Tools benutzt werden. Bisher ist es aber (noch) eine Beta-Version, da ich noch nicht ganz fertig bin (dann gibts auch einen eigenen Thread). Für tes4ll sollten aber alle features dabei sein, und ich hoffe, dass es die Benutzung von tes4ll stark vereinfacht.

Batch-Dateien für TESAnnwyn (mit den eigentlichen Funktionen, ohne den Umweg über tes4ll) und TES4qLOD sind dabei. Bei TESAnnwyn fehlt im Augenblick noch die Import-Funktion, da ich bisher noch kein Kommando zum Einfügen eines "Datei-öffnen-Buttons" eingebaut habe.
 
  • Like
Reaktionen: PlanB
Bitte eine Unklarheit zu beseitigen:
Mit tes4ll kann man völlig neue und individuelle Landschafts-LOD-Meshes erstellen.

Meines Wissens erzeugt TES4LODgen nur neue DistantLOD- Texturen (erneuert also nur den Inhalt des Ordners Oblivion\DistantLOD), keine Meshes. Verstehe ich richtig, daß man für Dein Tool den Ordner ..\meshes\landscape\LOD sichern muß?
 
Funktioniert gut, Dankeschön.

Edit:
Anmerkung:

Die GUI findet die Plugins.txt beim ersten Start nicht. Deine UI sucht diese Standardmäßig im Programm, statt im My Documents\Saved Games\Saves Verzeichnis.

Mit Wyre Bash gibt es ausserdem noch eine Besonderheit:
Und zwar kann man damit verschiedene Charakterprofile anlegen. WB legt dann im Ordner Saves nach dem Char benannte Unterorder an und verschiebt die betreffende Speicherstände dort hinein. Ausserdem legt es eine angepasste Plugins.txt mit der dazugehörigen Ladeliste dort ab.
Welche gerade aktuell verwendet wird, steht in der Oblivion.ini. (Welch wunder ;) )
 
Zuletzt bearbeitet von einem Moderator:
Die GUI findet die Plugins.txt beim ersten Start nicht. Deine UI sucht diese Standardmäßig im Programm, statt im My Documents\Saved Games\Saves Verzeichnis.

Ich suche eigentlich in %AppData% (bei mir C:\Users\ingo\AppData\Local\Oblivion\plugins.txt)

Mit Wyre Bash gibt es ausserdem noch eine Besonderheit:
Und zwar kann man damit verschiedene Charakterprofile anlegen. WB legt dann im Ordner Saves nach dem Char benannte Unterorder an und verschiebt die betreffende Speicherstände dort hinein. Ausserdem legt es eine angepasste Plugins.txt mit der dazugehörigen Ladeliste dort ab.
Welche gerade aktuell verwendet wird, steht in der Oblivion.ini. (Welch wunder ;) )

Das wird ein wenig schwierig. Man müsste sich bei den LODs ja ohnehin entscheiden, welche mods man nehmen möchte, da man da schlecht umschalten kann. Wenn man mehrere völlig unterschiedliche Installationen hat, würde sich MOM empfehlen. Ansonsten könnte man eine der Varianten herauspicken.

Für beide Probleme ist die einfachste Lösung, die Datei mpgui_autoload.mpb zu verändern (Achtung: sie wird durch den Installer bei jedem Update neu geschrieben). Dort gibt es folgende Zeile:

SetGamePluginFile -n=2 -value="$_appdata\Oblivion\plugins.txt"

wo man den Pfad beliebig verstellen kann.
 
Hallo,

ich muss einfach mal dieses Tool loben, das ist absolut super. Ich nutze es zusammen mit der graphischen Oberfläche.
Die große Krux am CS war doch immer, dass die LOD-Meshes mehr als ungenau und meistens mit hässlichen Abnormitäten ausgestattet waren. Mit dem LOD Generator werden die Meshes hypergenau, sodass sogar enge Felsspalten zuverlässig generiert werden.

Ich hatte übrigens auch das Problem, dass die Plugins.txt nicht gefunden wurde. Ich habe das Programm dann über die Oblivion\Data\ini\tes4ll\tes4ll_all.mpb gestartet und alles lief reibungslos.

Die Unterstützung von TES4qLOD durch die graphische Oberfläche ist auch klasse. Das macht alles viel leichter. Vielen, vielen Dank für die Arbeit, die Du Dir damit gemacht hast. Ich finde es wie gesagt absolut klasse.
 
  • Like
Reaktionen: Gruftikus
Die Unterstützung von TES4qLOD durch die graphische Oberfläche ist auch klasse. Das macht alles viel leichter. Vielen, vielen Dank für die Arbeit, die Du Dir damit gemacht hast. Ich finde es wie gesagt absolut klasse.

Vielen Dank nochmal, da höre ich gerne.

Nur also Randinfo: Ich habe vor einiger Zeit mal den source code von TES4qLOD genommen (er ist von Lightwave zwischenzeitlich unter der GNU-Lizenz veröffentlicht) und das alpha-blending eingebaut (TES4qLOD benutzte vorher immer nur eine einzige Textur pro Node, nämlich von dem Layer mit der größten Intensität), und das ganze als Test-Version mal hier abgelegt: http://www.sendspace.com/file/zn55c1
 
  • Like
Reaktionen: Rung
Hee Gruftikus,

wenn das funktionierte, wäre es super. Die TES4qLOD-Texturen konnte ich bisher nur zum Testen nutzen, die finale Version habe ich immer mit dem CS erstellen müssen, da aus dem von Dir genannten Grund des fehlenden Alphalayers ein großer qualitativer Unterschied zu sehen war.

Ich habe Deine Testversion ausprobiert und bisher brach er immer nach dem Erstellen der Partials ab. Ich habe es einmal mit der Grafikoberfläche versucht, wo am Ende die Meldung "Background error reader finished" ausgegeben wird. Das passiert auch, wenn ich das Feature "Use layer blending" nicht anhake. Und auch mit der Eingabeaufforderung, wo keine Fehlermeldung ausgegeben wird, es aber augenscheinlich an der gleichen Stelle abbricht.

Die Partials sind vorhanden und wie sie aussehen, funktioniert das Alphablending auch, lediglich zum Zusammenfügen zur kompletten Textur kommt es nicht.
Übrigens hat auch die Option, auf das Konvertieren zum *.dds-Format zu verzichten, keinen Einfluss auf den Abbruch.

Totzdem, allein dieses TES4qLOD-Manko anzugehen, verdient Respekt. Damit bräuchte es zur Erstellung des kompletten LODs überhaupt nicht mehr des CS. Ein Traum. :)
 
  • Like
Reaktionen: Gruftikus
Hallo Rung,

Ich habe Deine Testversion ausprobiert und bisher brach er immer nach dem Erstellen der Partials ab. Ich habe es einmal mit der Grafikoberfläche versucht, wo am Ende die Meldung "Background error reader finished" ausgegeben wird. Das passiert auch, wenn ich das Feature "Use layer blending" nicht anhake. Und auch mit der Eingabeaufforderung, wo keine Fehlermeldung ausgegeben wird, es aber augenscheinlich an der gleichen Stelle abbricht.

bricht das Programm an der Stelle ab, oder hängt es einfach? Die letzen Zeile müssen in etwas so aussehen:

Generating new BMP output file called: 60.32.32.32.bmp (Size 1024x1024)
Generating new BMP output file called: 60.64.32.32.bmp (Size 1024x1024)

We've finished!

Total Worldspaces found: 83
Total CELL records found: 35494
Total LAND records found: 31823
Total CELL records exported: 0
Total LAND records exported: 14686
Total VWD Objects written: 0

Now I'm cleaning up my temporary files ... (sometimes takes a while, but all your files are now generated).

Background error reader finished
Background reader finished

Es ist natürlich immer ein wenig schwierig, über die Ferne zu debuggen, aber ich könnte natürlich noch weitere Debug-Informationen einfügen, die man bei Problemen einschalten könnte
 
Zuletzt bearbeitet:
bricht das Programm an der Stelle ab, oder hängt es einfach?
Es tut nichts mehr. Wie gesagt, die Partials für die einzelnen Zellen werden erstellt, man sieht also im Log die Koordinaten. Danach steht in der Eingabeaufforderung nichts mehr, nur der Programmpfad blinkt wieder auf, sodass ich von Neuem beginnen kann. Die Partials liegen ordentlich abfragebereit in ihrem Ordner, nur zusammengefügt werden sie nicht.
 
Es tut nichts mehr. Wie gesagt, die Partials für die einzelnen Zellen werden erstellt, man sieht also im Log die Koordinaten. .
Hast Du das Log-File noch parat? Ich möchte gerne weitere debug-infos einbauen, nur müsste ich mal einen Anhaltspunkt haben wo ich ansetzen könnte. Das Programm ist ja eigentlich nicht von mir, ich habe es aber neu kompliert, und zwar nicht mit einem GNU-compiler, sondern mit M$