Terra Tiles

Übersicht Sonstiges Projekte

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Krischan

Betreff: Terra Tiles

BeitragDo, Apr 09, 2009 11:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich stelle Euch hier eines meiner aktuellen Projekte vor: Terra Tiles - einen Terragen-to-Meshterrain Loader mit Szenerie-Engine (Tag/Nachtwechsel) und einem Zwerg, der auf dieser Landschaft herumlaufen kann. Als Eingabe dienen lediglich zwei Dateien, 1x das Terrain im Terragen-Format und 1x die dazugehörige Megatexture - der Rest wird über eine INI-Datei gesteuert bzw. automatisch vom Programm berechnet.

Der Zwerg hat eine Gothic-ähnliche Steuerung (3rd Person Camera), es ist aber auch möglich, im Freeflight über die Landschaft zu fliegen. Es gibt viele Einstellmöglichkeiten, die alle in einer Readme.txt im Download beschrieben sind (allerdings auf englisch, damit unsere internationalen Freunde auf blitzbasic.com auch was davon haben). Diesem Download habe ich noch drei Karten beigelegt, die völlig unterschiedlich sind um das Potential zu zeigen.


Features

Terragen-Loader
Es können beliebige Terragen-Dateien geladen werden, das Terrain muss dabei allerdings quadratisch in einer Auflösung von 2^n+1 vorliegen (also nicht: 512x512 sondern 513x513!). Das Terrain kann automatisch von einer höheren Auflösung mittels eines bilinearem Filters in eine niedrigere Auflösung resampled werden (z.B. 513x513->129x129). Das Terrain wird dann anhand einer vorgegebenen Tilegrösse automatisch unter Berücksichtigung der UV-Koordinaten, der Kantennormals und der Texturübergänge zerteilt, so werden z.B. aus einer 513er Karte mit einer 4096er Textur 16x16 Tiles à 32x32 mit jeweils einer 256x256er Textur. In der Demo wird ein 513er Terrain mit einer Auflösung von 20m/Vertexabstand verwendet, d.h. die Insel hat eine Gesamtgrösse von 100km², die auch realistisch übertragen wird.

Realistischer Tag/Nachtwechsel
Mittels vordefinierter Farbverläufe und geschickter Überblendung von Quads sowie eines Skydomes (ein Patch mit einer Beule in der Mitte) wird ein weitestgehend realistischer?, aber zumindest sehr schön anzusehender Tag/Nachtwechsel realisiert. Zudem wird das Terrain von Lichtquellen entsprechend der Tageszeit angeleuchtet und mittels der Vertexschattierung entstehen schöne Lichteffekte über den Tag verteilt. Abgerundet wird die Szenerie mit einer fast sternenklaren Nacht und einem Mond, dessen Phase ebenfalls eingestellt werden kann.

Character-Steuerung
Der Zwerg wird mittels einer dem Spiel Gothic angelehnten 3rd Person Steuerung über die Landschaft gesteuert, die Kamera kann dabei mittels der Maus um 360° um den Spieler bewegt werden. Es wird Gravitation verwendet und die Skalierung des Zwerges im Verhältnis zur Landschaft wurde berücksichtigt. Zudem gibt es einen Freeflight-Modus, um schnell grössere Distanzen zurückzulegen bzw. die Landschaft aus einer anderen Perspektive betrachten zu können, beim Wechsel zwischen den Modi wird der Zwerg auf die Position der Freeflight-Kamera repositioniert bzw. umgekehrt.

Minimap
Die Minimap dient zur Lokalisierung des Spielers auf der Gesamtkarte. Diese wird mit einer orthogonalen Kamera aus der Vogelperspektive aufgenommen und auf ein Quad gelegt, die Spielerposition als roter Punkt eingezeichnet.


Screenshots

Screenshot: Monkey Island Insel um 07:15 morgens, Sonnenaufgang Richtung Osten
user posted image

Screenshot: Völlig andere Insel um 07:15 morgens, Sonnenaufgang Richtung Osten
user posted image


Download

Download Demo (3.5MB 7zip SFX)
http://www.christianhart.de/bb/terratilesdemo.exe

Die Demo ist im jetzigen Zustand lauffähig, aber nicht optimiert, d.h. das Terrain hat keinerlei LOD/PVS-Optimierungen und die Steuerung des Zwerges ist die allererste Version, speziell das Springen ist derzeit etwas unfertig. Man kann aber eigene Terrains/Megatextures erstellen und mit der Demo laufen lassen sowie in der INI-Datei diverse Parameter abändern (dies kann aber zu Abstürzen führen, da noch keine Prüfung der Variablenplausibilität erfolgt).

Sources und Media werde ich der Community zur Verfügung stellen, sobald diese bereinigt, optimiert und komplett kommentiert wurden, was derzeit noch nicht der Fall ist.

AnniXa

Betreff: omg

BeitragDo, Apr 09, 2009 11:37
Antworten mit Zitat
Benutzer-Profile anzeigen
wau :O
so etwas hätte ich nicht erwartet das man sowas tolles machen kann :O
|moonForge|
Ich bin Pokémon Meisterin seit 1998!

TimBo

BeitragDo, Apr 09, 2009 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Respekt !! Sieht echt cool aus !

Darf ich sagen was mir nicht gefällt ?
Ok eine Sache , die Nacht is zu sehr dunkel finde ich.

Also in G3 kann man wenigstens noch sehen wo man langläuft , aber bei deinem Zwerg ^^ habe ich erstmal voll die Orientierung verloren.

Mach weiter so !!

Viele Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

vanjolo

BeitragDo, Apr 09, 2009 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Krischan ich freu mich ehrlich jedes mal wenn ich einen Post von Dir lese. Einfach klasse was Du hier immer zeigst.

****Super****
***************************
in Entwicklung:
Tank Battles - Panzeraction
Pacific Battles - Rundenstrategie
abgeschlossenes Projekt: Harrier Assault
 

Zauberwürfel

BeitragDo, Apr 09, 2009 12:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow, das ist echt nice. Nur wenn man die Rechte Maustaste drückt, um zu rennen, gibt es keinen sauberen Übergang zwischen Gehen und Rennen. Aber ****** drauf, das sieht jetzt schon geil aus =)

Setz noch ein paar Gegner drauf die man abmetzeln kann (die dürfen auch ganz hohl sein), dann wärs ein lustiger Spaß für zwischendurch =D
Ja ich bin audiophil. Jetzt ist es raus.
 

tobias12

BeitragDo, Apr 09, 2009 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
boahhh, mal wieder erste sahne, was du da zusammen gecodet hast.
vorallem das terrain gefällt mir sehr gut,mach weiter soo

GENIAL

mlg
Mein Projekteforum
 

Krischan

BeitragDo, Apr 09, 2009 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
@Annixa: und ich habe noch nicht mal irgendwelche Hacks wie Fastlibs verwendet, ist reines B3D

@Timbo: das liegt daran, dass der Zwerg keine Fackel in der Hand hat Smile Nein, man kann das alles tweaken, im Moment habe ich um Mitternacht CLScolor 4,8,16 und Ambientlight 16,32,64, allerdings ist auch die Phase des Mondes entscheidend, nach der sich die nächtliche Lichtstärke richtet (Stichwort: Vertex Lighting). Ich habe das nur noch nicht in die INI mitaufgenommen, das sind alles Datafelder. Gothic 3 war mir nachts aber zu hell

@vanjolo: Danke, allerdings baue ich an diesem System mehr oder weniger schon seit Jahren herum, schau Dir mal diesen Thread an, dann siehst Du wie die Anfänge mal ausgesehen haben. Ich habe auch viele meiner Codes in diesem Projekt verwendet, so z.B. Farbverläufe, Mesh Terrain, Terragen Loader, Bank Funktionen usw...

@Zauberwürfel: ist mein erster Versuch mit Animationen, ich nehms mal in die lange ToDo-Liste mit auf. Wenn ich den Source poste könnt Ihr damit machen was ihr wollt, ein 1to1 Gemetzel, ein RPG oder ein MMORPG Shocked

Ach, was mich noch interessieren würde - wie läuft das denn bei Euch, da sind immerhin 100.000 Triangles zu rendern und dutzende Surfaces mit Alpha? Bei mir hier (Laptop, C2D@2,5GHz, nVidia GF9600M GT) bekomme ich 192FPS am Anfang, ohne Text (Taste "I") ca. 240FPS.

Nicdel

BeitragDo, Apr 09, 2009 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur ca. 70 FPS ohne Text, 42 mit.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

Zauberwürfel

BeitragDo, Apr 09, 2009 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich krieg so 200FPS wenn ich gar nix mache, wenn ich gehe ~250. Ohne Text weiß ich nicht, ich habe kein Fraps..
Ja ich bin audiophil. Jetzt ist es raus.
 

vanjolo

BeitragDo, Apr 09, 2009 14:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Schwankt um die 20 Frames
Samsung Netbook mit 1,6 GHZ und 2 GB RAM, Grafik Intel Mobile 965 Chipsatz
***************************
in Entwicklung:
Tank Battles - Panzeraction
Pacific Battles - Rundenstrategie
abgeschlossenes Projekt: Harrier Assault

AnniXa

BeitragFr, Apr 10, 2009 9:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf meinem kleinen Acer one komm ich auf ~40 frames
|moonForge|
Ich bin Pokémon Meisterin seit 1998!

Goodjee

BeitragMo, Apr 13, 2009 11:47
Antworten mit Zitat
Benutzer-Profile anzeigen
das sieht krass aus, die weitsicht ist ziemlich geil, nur im detail verliert das terrain an schönheit. Vllt hilft ja noch eine höher auflösende detailmap oder einfach ein bischen graß oder sonstiges unkraut
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

matze-t

BeitragMo, Apr 13, 2009 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Echt geil. Gefällt mir sehr gut!
Ich komm auf knapp über 60 fps (Dual-Core @ 2,2Ghz, 2GB RAM, Grafik: ASUS EAH2400 Pro: 256MB/520MHz)
Aber es läuft grad nen Viren-Scan parallel.
 

Fredko

BeitragMo, Apr 13, 2009 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Falls ich auf Bergen die große weite Welt angucke ca. 80 bis 110 Fps, sonst
120 und mehr FPS.
Sehr gut gelungen, nur ich frage mich wieviel FPS im vergleich ein
gleich großes Blitz3D Terrain hätte Smile
Nvidia GeForcce 8600 GT 1024 MB Grafikkarte , 4*3.4Ghz, 2 GB RAM, XP SP2
!

Eingeproggt

BeitragMo, Apr 13, 2009 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Und ich muss mal wieder den Miesepeter spielen Sad

Also ich gebs zu, es sieht ->sehr gut<- aus.
Aber bei mir gibts 35-40FPS auf meinem P4 mit 3.4GHz mit 1GB RAM und ner ATI X700.
Und was ich hier so nachlesen konnte gibts selbst auf den "ärgsten Zockerkisten" (klar, schlimmer gehts immer Smile ) nichtmal 200FPS.
Obwohl hier nur eine nackte Spielwelt zu sehen ist. Keine Vegetation, NPCs, Fahrzeuge, wasweißichwas.

Trotzdem Respekt vor dem was du zustande gebracht hast und deinem guten Willen, es OpenSource zu machen!

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

peacemaker

BeitragMo, Apr 13, 2009 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
So ungefähr 4 - 7 FPS.

Pentium IV 1.8 GHz, 768 MB Ram, Radeon 9250
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
 

Tritium

BeitragMo, Apr 13, 2009 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit dem ersten PC in meiner Signatur:
Auf der Karte Desert komme ich auf ca. 80fps, wenn ich im Freiflug die komplette Karte ansehe, auf Monkey Island sinds auf die gleiche Art und Weise ungefähr 75.
Die Karte Island funktioniert bei mir nicht, sowohl Terrain als auch Minimap sind schwarz, außerdem braucht Dein Programm beim Bilder laden auffällig lange. Framerate liegt bei ungefähr 65. Ich nehm mal an, dass da wohl die Texturen nicht ganz funktionieren. Der Zwerg und der Himmel sind übrigens texturiert.

Ansonsten ist das eine echt tolle Sache! Aber Eingeproggt hat schon recht, dass muss noch optimiert werden.
 

Krischan

BeitragMo, Apr 13, 2009 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Fredkostudio hat Folgendes geschrieben:
Sehr gut gelungen, nur ich frage mich wieviel FPS im vergleich ein
gleich großes Blitz3D Terrain hätte Smile
Etwa genauso viel, allerdings wäre hier die Texturauflösung durch die Grafikkarte begrenzt (1024/2048), mit meinem Terrain kann ich hingegen eine 8192x8192er Colormap verwenden. Meine ersten Versuche habe ich auch mit einem Blitzterrain gemacht, allerdings war die Qualität nicht so doll. Ob man aus dem Terragen-Loader ein Meshterrain oder ein Blitztterrain erstellt ist ziemlich egal, auf jeden Fall dürfte auch bei einem Blitzterrain die Höhendarstellung qualitativ wesentlich besser sein als bei einer Graustufenheightmap (zur Erinnerung: Terragen kann einen Berg mit 1km Höhe auf 2cm genau darstellen, bei Graustufen-Heightmaps reichen die Zwischenschritte dazu bei weitem nicht aus und es gibt dadurch "Treppen").


Eingeproggt hat Folgendes geschrieben:
Und ich muss mal wieder den Miesepeter spielen [...] Und was ich hier so nachlesen konnte gibts selbst auf den "ärgsten Zockerkisten" (klar, schlimmer gehts immer Smile ) nichtmal 200FPS.
Lesen. "Die Demo ist im jetzigen Zustand lauffähig, aber nicht optimiert, d.h. das Terrain hat keinerlei LOD/PVS-Optimierungen", d.h. die CPU und die Grafikkarte haben derzeit noch ordentlich zu tun. Das hier ist der absolute worst case, es gibt aber noch viel Spielraum für Optimierungen. Ausserdem ist die Sichtweite immer das ärgste Problem bei Outdoorszenarien, immerhin sind hier 10 Kilometer Sichtweite drin. Woran ich mich bislang noch nicht gewagt habe ist, vom Terrain mehrere Detailstufen zu erstellen und diese je nach Entfernung ein/auszublenden, allerdings müssen hierbei die Randvertices/normals der Tiles zur Runtime angepasst werden damit das weich ineinander übergeht, evt. kann man das aber vorcachen. Ich wette aber, das das dann immer noch schneller ist und besser aussieht als ein Blitzterrain.

Im Source ist übrigens auch eine Funktion, die das Terragen-Terrain mittels bilinearem Filter, also weich, verkleinern kann und genausogrosse Tiles ausspuckt wie bei voller Qualität. Eine Optimierung die Insel betreffend habe ich gerade erst fertiggestellt: die unnützen Meeresboden-Triangles, die alle flach sind und mit dem Horizontground "verschmelzen" können übersprungen werden, dazu muss man die Terragen-Karte zu den Rändern hin etwas "tieferlegen" und es fällt gar nicht auf dass die fehlen. Hat bei mir zwischen 15% und 25% Gesamttrisreduzierung geführt, allerdings geht das nur bei Inselkarten.


Tritium hat Folgendes geschrieben:
Die Karte Island funktioniert bei mir nicht, sowohl Terrain als auch Minimap sind schwarz, außerdem braucht Dein Programm beim Bilder laden auffällig lange.
Dann ist vermutlich Dein VRAM voll, dort wird nämlich eine 4096x4096er Colormap in 8x8 512x512er Texturen zerschnibbelt und mit Flag 256 in den VRAM geladen. Die anderen beiden Karten sind nur 1024x1024, deshalb werden die wohl angezeigt. Versuche einmal, die "island.jpg" zu verkleinern, also auf 2048 oder 1024 Pixel. Dass das solange lädt kann daran liegen, dass die restlichen Texturen mit der EXE gepackt sind, das war mir auf einem älteren Rechner beim Blitzmedialinker schon aufgefallen.

Sobald ich den Source veröffentlicht habe (ist bald fertig) dürft Ihr Euch gerne selbst an einer Optimierung versuchen, ich werde das vermutlich nicht grossartig weiter proggen und mich erstmal wieder meinem anderen Projekt zuwenden.
 

Krischan

BeitragFr, Apr 17, 2009 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit dem Code dauert noch ein wenig, er ist zwar prinzipiell fertig, allerdings hat mich das mit den wenigen FPS nicht in Ruhe gelassen und ich habe die letzte Woche damit verbracht, eine Quadtree-Triangle-Reduktionsmethode zu verfeinern (Basis: eole's Free Terrain Mesh System). Allerdings war es in der Form dort nicht brauchbar und ich musste erst grosse Teile umschreiben und mich mit den Normals/UV-Koordinaten kloppen, aber jetzt gehts endlich, juchhu. Am Wochenende werde ich dann das Quadtree-Terrain in meine Szene einbauen, dann sollten sich die FPS zumindest verdoppeln. Ich kann nun sogar ein 2049x2049er Terrain mit immerhin noch 50-100FPS darstellen (vorher: 5). Da ist dann aber auch die Grenze mit B3D erreicht, danach gibt es seltsame Grafikfehler (da fehlt mal ein Tile mitten auf der Insel, seltsam). Die besten Ergebnisse gibt es aber nach wie vor mit einer 513er Karte, die auch völlig ausreicht.

Hier mal zwei Screenshots:

1. nicht optimiertes Mesh, 513er Karte
user posted image

2. Quadtree-optimiertes Mesh, 513er Karte
user posted image

Beim ersten sieht man nur die grossen Meeres/Bodentriangles (weil die vielen Inseltriangles zu klein sind), beim zweiten kann man hingegen deutlich die Quadtree-Struktur erkennen, Details werden mit vielen kleinen Triangles dargestellt und grössere Flächen mit wenigen grossen. Die Detailstufe ist beliebig einstellbar und wie man im Draufsichtvergleich sehen kann, von 125 auf 261FPS rauf und von 368K auf 100K Triangles runter, bei gleicher oder sogar bessere Matrixqualität. Natürlich habe ich wieder den worst case getestet (hier: Vogelperspektive, die man aus 3rd Person Sicht kaum zu Gesicht bekommen wird. Im Schnitt habe ich beim Quadtree nun 500-700FPS im Gegensatz zu 250-400FPS ohne, alles auf 800x600 im Fenstermodus gemessen).

Damit kann ich mir ein dynamisches LOD schenken, evt. ein PVS-System könnte stellenweise noch die Performance steigern, aber viel ist da nun nicht mehr drin, ausser mit Qualitätsverlust in der Matrix.
 

aletes

BeitragFr, Apr 17, 2009 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
sieht gut aus, habs grad entdeckt
eine frage, hast du das mit Blitz3D oder mit BlitzMax gemacht?

EDIT: oh, blitz3D grad gelsen, sorry wegen nachfragen

ys, aletes

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group