Am besten geeigneter Terrain-LOD Algorithmus?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Skabus

Betreff: Am besten geeigneter Terrain-LOD Algorithmus?

BeitragSa, Jun 12, 2010 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich hab mich momentan intensiv mit LOD Algorithmen zur Terraingenerierung beschäftigt....
Meine Frage dabei ist natürlich nicht "Welcher Algo ist der beste", da das stark von der
Nutzung abhängt...

Allerdings bin ich unschlüssig welcher Algorithmus nun am besten für die Umsetzung
in Spieleprojekten geeignet ist.

Welcher würde denn, genau gefragt, dem B3D-Ansatz am nächsten kommen?

Die 3 imo sinnvollsten Algos wären ja:

Röttger Algorithmus:
http://wwwvis.informatik.uni-s...ERRAIN.PDF

Geometrical MipMapping:

http://www.flipcode.com/archiv...ipmaps.pdf

oder

ROAM:

http://www.osti.gov/bridge/pur...bviewable/

Wegen der Einfachheit und der leichten Implementation würde ich zu GeoMipMap tendieren.
Zumal dieser Algo vor allem mehr die GPU anspricht als die CPU was vor allem bei morderner
Hardware zu passe käme.Die meisten anderen sind recht CPU-lastig...

Stellenweile sind manche CLOD-Algos langsamer als Bruteforce, zumindest per frame...

Also, was würde sich auf lange Sicht vor allem auch in Hinblick auf Modifizierbarkeit etc.
am meisten eignen?

Danke für eure Hilfe Very Happy


MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu

Noobody

BeitragSo, Jun 13, 2010 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Am einfachsten ist definitiv Geomipmapping. Mit heutiger Hardware ist es ausserdem fast der schnellste Algorithmus, da er vornehmlich die Grafikkarte verwendet und kaum die CPU und man alle Mipmaps nur einmal am Anfang berechnen muss und nachher mit Vertexbuffern sehr schnell zeichnen lassen kann.

Daher würde ich am ehesten Geomipmapping verwenden (kann miniB3D Ext nicht sowas?).
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Skabus

BeitragSo, Jun 13, 2010 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja der miniB3D ext Algo blendet lediglich patches aus, welche weiter weg sind als die Farclipping plane...

Ich bin mir nicht sicher ob das vollkommen ausrecht...
Zumal die Routine ansonsten völlig bruteforce die patches reguliert.

Ein anderes Problem, bzw. keine Ahnung obs ein Problem ist, aber eine andere Sache ist die Dauer
zum Erstellen des Terrains....

Wie schnell ist B3D damit? Der aktuelle Algo braucht zwischen 15 - 17 Sekunden um die Szene aufzubauen
bei einer 256*256 Karte, was gefühlt sehr lange ist. Kann allerdings auch an meiner Unwissenheit
liegen, weißt du/jemand da mehr?

Außerdem ändert wie gesagt der Algo die Geometrie der Patches nicht, was relativ geschwindigkeitsbremsend ist, daher wollte ich einen etwas optimierteren Algorithmus verwenden.

Geomipmapping scheint mir konforabel zu sein, gibts irgendwelche Programmiererressourcen dahingehend?Ich hab zwar bereits mehrere Papers zu dem Thema gefunden, nur hilft
mir das immer net ganz so weiter....

Danke für eure Hilfe, wie immer^^

MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu

Noobody

BeitragSo, Jun 13, 2010 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Skabus hat Folgendes geschrieben:
Zumal die Routine ansonsten völlig bruteforce die patches reguliert.

Bruteforce? Wie kommst du darauf? Im Prinzip vergleicht sie die Fehlerrate in Pixel, die entstehen würde, wenn man von einem detaillierteren Patch zu einem weniger detaillierteren wechselt, mit einem angegebenen maximalen Pixelfehler. Falls die Fehlerrate kleiner ist, wird die Mipmap ausgetauscht. Somit kann man sehr schön die maximale Fehlerrate auf dem Bildschirm regulieren und ausserdem die gerenderten Dreiecke sehr einfach auf verschieden gute Hardware anpassen.

Skabus hat Folgendes geschrieben:
Wie schnell ist B3D damit? Der aktuelle Algo braucht zwischen 15 - 17 Sekunden um die Szene aufzubauen
bei einer 256*256 Karte, was gefühlt sehr lange ist. Kann allerdings auch an meiner Unwissenheit
liegen, weißt du/jemand da mehr?

B3D verwendet Quadtrees für das Terrain, daher kann man es nicht vergleichen. Aber auf jeden Fall sind 15 Sekunden viel zu lange - das sollte in Sekundenbruchteilen vonstatten gehen,

Skabus hat Folgendes geschrieben:
Außerdem ändert wie gesagt der Algo die Geometrie der Patches nicht, was relativ geschwindigkeitsbremsend ist, daher wollte ich einen etwas optimierteren Algorithmus verwenden.

Natürlich ändert es die Geometrie Wink Mit jedem Patch verringern sich die Triangles auf einen Viertel der ursprünglichen Menge.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Skabus

BeitragSo, Jun 13, 2010 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Noo ich glaube du hast mich missverstanden...

Ich rede von dem Algorithmus der in miniB3D ect. verbaut ist....
Der erstellt nur einen einzigen Patch, auf bruteforce-Art.

Den GeoMipmap hab ich verstanden....allerdings kann man Geomipmaps genauso per Quadtree aufbauen,
zumindest empfiehlt dass das Paper über den Algorithmus...

Wie soll die Datenstruktur denn ansonsten aussehen?Soweit ich mich belesen hab,
klingen Quadtress vor allem in Hinblick aufs Cuelling relativ sinnvoll...

Nagut ich werd mich dann mal am GeoMipMapping versuchen.Danke^^


MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu

Skabus

BeitragMi, Jun 23, 2010 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich bins nochmal...

Ich habe mitlerweile eine QuadTree-Struktur erstellt, welches nun den Aufbau meiner Landschaft übernimmt.
Auch das LOD funktioniert einwandfrei....

Mein Problem ist aber immernoch die Performance zur Erstellzeit....

Habe ich ein Terrain mit 65*65(2^n +1) Ausmaße dauert die generierung der Vertexinformation
etwa 2 Sekunden...

Bei einer Größe von 257*257 dauert die vollständige Vorgenerierung der Vertexinformationen
ganze 2(!) Minuten(naja genauer 1:53 Sekunden), was aber immernoch viel zu lang sein
dürfte, oder irre ich mich?

Zumal ich immernoch net raffe, wie soll die Generierung des Terrains ins Sekundenbruchteile geschehen?
Es muss zumindest ne Weile dauern 65000 Vertices zu berechnen...

Die Frage ist nun...ist mein Ansatz falsch?Oder liegt daran dass ich das gesamte Terrain
auf einmal generieren will?

Ich hätte nur das Problem, wenn ich die Vertexdaten zur Laufzeit nach und nach generieren lasse,
dann müsste es doch hässliche Laderuckler geben, oder?


Wäre wirklich dankbar für eure Erfahrungen mit dem Thema...ich hab nichts zum vergleich um
mir net Vorstellung zu machen wie schnell ein großes Terrain erstellt werden muss, ob man
alle Vertexinformationen im vorraus kalkuliert oder eher on the fly zur Laufzeit....


Wirklich, ein paar Erfahrungsberichte würden mir sehr helfen!Danke!


MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group