JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=dbf1eb218edf6827785d5c978df6d61dMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

! Terrain ! - Nichts für Modem User (Screenshots/Download)
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 18:15    Titel: ! Terrain ! - Nichts für Modem User (Screenshots/Download) Antworten mit Zitat

Hallo,

das Terrain entwickelt sich langsam. Folgende Features:

1. Quadtree basiertes, gekacheltes Terrain
2. Zwei Pfade (Pixelshader 1.3 oder Fixed Function Pipeline), je nachdem was die HW kann.
3. Es sind jetzt 4 Layer (Sand, Grass, Stein, Lightmap)
4. View-Frustum-Culling mit dem Quadtree und den Bounding Boxes

Es werden zwei Fenster aufgemacht (640x480). Initial sind diese übereinander. Ideal ist es, bei Doppelbildschirm, das Fenster mit dem Titel "Window 2" auf den langsameren Desktop zu ziehen und dann in das Fenster "Window 1" zu klicken. Bei Einzelbildschirm ev. die Fenster verkleinern, da man sonst nichts sieht. Achtet darauf, dass immer nur "Window 1" aktiv ist, wenn ihr euch bewegt. "Window 2" kann geschlossen werden, dann sollte die Performance besser werden. Bitte immer "Window 2" zuerst schließen !!

Die zwei Fenster zeigen sehr schön wie das Culling, BBoxen, Tiles usw. funktionieren.

Wer den Unterschied zwischen Fixed Function Pipeline/Pixelshader sehen will, der kann das EffectFile anpassen. Einfach die Pixelshader-Technik auskommentieren. Der Fixed Function Pfad ist schöner, weil ich noch nicht rausbekommen habe, wie ich das per Pixelshader genauso gut hinbekomme (FallenAngel84?).


Tasten:

Pfeiltasten (klar)
1,2 (Geschwindigkeit)
+,- Ziffernblock (Höhe)
Bild auf, Bild ab (Wireframe/Solid)
Pos1, End (Bounding Boxes an/aus)

Ich habe es mal aufgespaltet, wenn ich das Programm mal update.

Media
bin

Verzeichnisstruktur muss so aussehen:

Code:

Terrain\
         Media
              \ib
         src
            \SimpleGameApp
                          \SimpleGameApp_R.exe


Der Download ist 16+ MB, wegen der Texturen. Wäre schön, wenn es trotzdem jemand anschaut.

Bitte FPS, CPU Load (ca.), Karte usw angeben. Allgemeine Kommentare wie sieht gut/schlecht aus sind auch willkommen Wink. Danke.

Screenshots:






Christian


Zuletzt bearbeitet von Christian Rousselle am 22.02.2004, 18:39, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 18:36    Titel: Antworten mit Zitat

Wer mich erreichen will, der findet mich den ganzen Abend im #jli channel.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Chewie
Super JLI'ler



Anmeldedatum: 17.07.2003
Beiträge: 382

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 20:08    Titel: Antworten mit Zitat

gf4 ti 128mb 8x
ladezeit: ~2 sec.
framerate: 30-40 (solid, nur fenster 1, mitten im gelände)

sieht sehr schön aus, weniger schön ist der ausnahmefehler, wenn man sich zu weit wegbewegt;)

wenn du aus dem nähkästchen plaudern willst, würde mich natürlich sehr die rendermethode interessieren. wie hastz du das culling und die man-nimmt-das-tile-das-am-weitesten-weg-ist-methode unter einen hut gebracht?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 21:01    Titel: Antworten mit Zitat

Komisch, ich habe 85 fps, wenn ich die Würfel abschalte, auch 4200 und Athlon 2000+.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Chewie
Super JLI'ler



Anmeldedatum: 17.07.2003
Beiträge: 382

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 21:16    Titel: Antworten mit Zitat

sry, die würfel hab ich vergessen abzuschalten...dann hab ich 55-60 fps...
komisch, ich hab auch nen athlon 2000+...ich muß mir mal die neuesten treiber checken...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 21:32    Titel: Antworten mit Zitat

Nur ein Fenster? Ach so, deine Frage: Die Sortierung und das View-Frustum-Culling stören sich nicht, ich speichere mit die Tiles in einer Liste (vector) und dann kommt das Culling und schaut, welche drin sind, welche nicht.....

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 21:41    Titel: Antworten mit Zitat

PII 400MHZ
128MB SDRAM
GF4 MX 440 64MB

Ladezeit bis es angezeigt wird ca. 5 sek.

lauft mit 30 - 40 FPS

das Terrain zittert bisl wenn ich mich bewege
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Chewie
Super JLI'ler



Anmeldedatum: 17.07.2003
Beiträge: 382

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 22:05    Titel: Antworten mit Zitat

zwischen 1 oder 2 fenstern ändern sich die fps nicht großartig...ich brauch sicher neu treiber, darum wahrscheinlich auch der unterschied wire/solid.

also die berechnungen laufen seperat? ich kanns mir einfach nicht vorstellen...wenns dir zu mühsam wird, warte ich einfache auf das buch, aber: du gehst mal her und schaust in welcher auflösung welches tile gerendert werden muß und veränderst demnach den vertexbuffer, richtig? dann gehst du mal von anfang an die boxen der einzelnen nodes im tree durch und checkst sie gegen das frustum, richtig? was enthält dann aber ein leaf, das gerendert werden muß...müssen ja indices sein, aber welche, wenn du den VB andauernd 'on the fly' veränderst?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 22:15    Titel: Antworten mit Zitat

Auf meinem System läuft es sowohl im 4 Pass - Mode als auch im Singlepass (PixelShader) meistens bei 85 FPS, Prozessorauslastung ist aber > 80%, natürlich bei einem Fenster, Solid und Boxen aus. Habe einen aktuellen Treiber von Nvidia (52.xx)


Mein System:

GeForce4 Ti 4200 128 MB 4xAGP und Athlon 2000+.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 22:36    Titel: Antworten mit Zitat

@Chewie

Es wird mir nicht zu mühsam, ich mache zur Zeit nur zuviel gleichzeitig, sorry, wenn ich etwas kurz angebunden wirke....

Aufbau:

Der Quadtree wird am Anfang voll aufgebaut, d.h. alles Tiles wissen, wo sie sind (ModelToWorld-Matrix und ihre Skalierung) Außerdem erhalten sie einen Pointer auf ihre Nachbarn und natürlich ihre Kinder und auf ihr Parent. Zuerst werden 4 Childs angelegt, sollte man auch im Terrain sehen können. Jedes Child unterteilt sich wiederum in 4 Tiles, dabei wird die Skalierung natürlich jedesmal halbiert. Die Unterteilung hört auf, wenn das Tile noch 16x16 Meter groß ist, ein Quad (zwei Dreiecke) also ein Meter mal ein Meter groß sind.

Rendern:

Die Render Methode der Root-Node des Quadtree wird aufgerufen. Diese guckt, welches der Childs am weitesten von der Cameraposition entfernt ist und trägt einen Zeiger in die Liste der zu rendernden Tiles ein. Das passiert für alle Childs. Wenigstens eins der Tiles ist so nah dran, dass es unterteile werden muss, dann wird die Renderfunkion für die Childs dieses Tiles aufgerufen usw. usw. usw. Am Ende hat man eine Liste von Tiles. Die Tiles dieser Liste werden gegen das Frustum getestet und voila, dass ist es schon. Das komplizierteste war die Zeiger auf die Nachbar hinzubekommen. Diese werden benötige um rauszubekommen, in welcher Auflösung ein Nachbar gerendert wird.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.02.2004, 22:42    Titel: Antworten mit Zitat

Habe gerade eine Unschönheit im Pixelshader entdeckt, wer Lust hat kann mal Zeile 163 von terrain.fx in

return (Color0 + Color1 + Color2) * BlendController.b;

ändern. Sollte viel besser aussehen. Bringt nur was für die Pixelshader Fraktion Smile

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 23.02.2004, 14:37    Titel: Antworten mit Zitat

Also:
Athlon XP 2000+, Geforce 4 Ti 4200 64 MB, 512 MB PC266 DDRAM

Ohne Boxen, Solid: [Bildwiederholrate]fps (85)
Ohne Boxen, Wireframe: [Bildwiederholrate]fps (85)
Mit Boxen, Solid: 20 fps
Mit Boxen, Wireframe: 20-30 fps

(Alles mit 1 Fenster + maximiert)

Ich muss aber nochmal Kritik an der Kamera üben Wink:
Es nervt schon etwas, wenn sie immer anschlägt, wenn man mit der Maus oben / unten / links / rechts am Bildschirmrand ist ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 23.02.2004, 17:03    Titel: Antworten mit Zitat

Von der fps her habe ich da gute Werte >60fps.

Aber: Wie Sec schon sagte zittert das Terrain ein bisschen bei der Bewegung. Das gleiche ist bei mir auch. Ist das gewollt?

Hab mal ein Bild hochgeladen: http://home.arcor.de/boxcarblink/pics/terrain.jpg
Ist von ganz nahe dran. Manche Polys sind unterschiedlich hell, was sich bei jeder Bewegung zu ändern scheint, was vom weiten so aussieht als wenn es flimmert(ähnlich als wenn warme Luft aufsteigt).[/url]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 23.02.2004, 17:22    Titel: Antworten mit Zitat

Hallo,

danke erstmal fürs Testen. Der Effekt ist NICHT gewollt, ich habe ihn aber schon auf Karten <= Geforce2 gesehen, auch der neuste Treiber scheint nichts zu bringen....Ich weiss noch nicht, woran es liegt. Gibt es eigentlich jemanden mit ATI Grafikkarte, der es getestet hat?

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 24.02.2004, 14:04    Titel: Antworten mit Zitat

2.1 Athlon 512 MB DDR Ram GF3 TI 200

Beim 2tn Fenster 20 Frames ohne PixelShader (müsste mein Rechner mal komplett neu machen)

Beim 2tn Fenster 21 Frames (Jippy) mit PixelShader 1.1 (hab was im Shader verändert)

Das der Berg vollkommen grünlich schimmert kannst du verhindern indem du bei den Stellen am Berg wo kein Gras sein soll den Farbwert des R-Channels auf 0 setzt (comb_masks_lighmap.png).
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum