Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 22.02.2004, 18:15 Titel: ! Terrain ! - Nichts für Modem User (Screenshots/Download) |
|
|
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 . Danke.
Screenshots:
Christian
Zuletzt bearbeitet von Christian Rousselle am 22.02.2004, 18:39, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 22.02.2004, 18:36 Titel: |
|
|
Wer mich erreichen will, der findet mich den ganzen Abend im #jli channel.
Christian |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 22.02.2004, 20:08 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 22.02.2004, 21:01 Titel: |
|
|
Komisch, ich habe 85 fps, wenn ich die Würfel abschalte, auch 4200 und Athlon 2000+. |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 22.02.2004, 21:16 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 22.02.2004, 21:32 Titel: |
|
|
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 |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 22.02.2004, 21:41 Titel: |
|
|
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 |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 22.02.2004, 22:05 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 22.02.2004, 22:15 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 22.02.2004, 22:36 Titel: |
|
|
@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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 22.02.2004, 22:42 Titel: |
|
|
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
C. |
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 23.02.2004, 14:37 Titel: |
|
|
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 :
Es nervt schon etwas, wenn sie immer anschlägt, wenn man mit der Maus oben / unten / links / rechts am Bildschirmrand ist ... |
|
Nach oben |
|
|
Sören JLI Master Trainee
Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 23.02.2004, 17:03 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 23.02.2004, 17:22 Titel: |
|
|
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 24.02.2004, 14:04 Titel: |
|
|
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 |
|
|
|