|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 18.02.2004, 14:57 Titel: |
|
|
bei der neueren version hat sich bei mir nichts verändert, immer noch 30FPS bei SOLID, und 12 bei WIREFRAME |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 18.02.2004, 15:10 Titel: |
|
|
Die Geschwindigkeit sollte sich auch nicht ändern, nur die Schönheit Zwei Texturen sollten jede aktuelle Grafikkarte ohne Probleme können.
C. |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 18.02.2004, 16:07 Titel: |
|
|
sieht auch viel beser aus. ohne lightmap und die texturen sah es ein bischen wie kraut und rüben aus. jetzt siehts wie in nem richtigen pc-spiel aus..... |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 18.02.2004, 21:21 Titel: |
|
|
sehr fein siehts jetzt aus.
dass der vertexbuffer ständig gelockt wird, finde ich nicht gut. meines wissens sollte man alles was man schon zu beginn berechnen kann, auch schon beim initialisieren tun. um zu demonstrieren wie man den vb updatet reicht auch ein absatz im buch, wie und wo(im vb) man das macht ist dann sowieso individuell.
cool fände ich eine stabile terrain engine, die möglichst wenig performance frißt...sprich mit mipmapping, dem lod system und occlusion culling, am bestem mehrere systeme(pvs, octree, bboxes um tiles) die man ein-/ausschalten kann. verfeinert durch z.B. einen buggy, in dem man drauf herumheizen kann.
was ich auch nicht verstehe ist, wieso du zuerst das tile am weitesten von der cam entfernt hernimmst. wärs nicht gescheiter mit dem wo man steht zu beginnen und sich in quadraten kreisförmig zu entfernen? dann könnte man bei einer bestimmten tiefe zum starttile eine bestimmte detailstufe einstellen.
da könnte man dann auch gleich mit dem PVS ansetzen:
tile von cam hernehmen
pvs tiles hernehmen
abstand zum starttile
in bestimmter detailstufe rendern
pvs tiles hernehmen
.....
wobei ich sagen möchte, dass ich ein PVS system bei einer outdoor engine auch nicht unbedingt für sinnvoll halte. weil du im grund wieder bboxes um die einzelnen tiles in einem set brauchst, um das frustum dagegen zu testen, damit du nicht von allen tiles im set das nächste pvs hernimmst.
bei ner indoor engine kann man ja portale hernehmen und über die die pvs sets verlinken.
ich laß mich aber auch gern eines besseren belehren...
meiner meinung nach ist ein octree einfach perfekt für eine lanschaft, wobei ich noch keine gute idee hab, den mit dem lod system zu koppeln. |
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 19.02.2004, 09:58 Titel: |
|
|
Einen Buggy? ^^ ich glaube, das ist schon sehr viel schwerer zu machen als die Landschaft alleine, mit der Fahrphysik, dass das einigermaßen realistisch wirkt ... |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 19.02.2004, 10:17 Titel: |
|
|
Hallo,
wenn das Tile, dass am nächsten am Spieler ist zuerst gezeichnet würde, müßten sich die anderen Tiles, die an dieses Tile anschließen ev. verfeinern. D.h. es müßten zusätzliche Vertices hinzugenommen werden, dass halte ich nicht für so einfach. Die momentane Methode stellt sicher, dass ein Tile nur besser aufgelöst werden kann und sich "vergröbern" muss.
Zitat: |
dass der vertexbuffer ständig gelockt wird, finde ich nicht gut.
|
Ich sehe nicht, wie es anders gehen soll. Du willst bei dieser Größe nicht wirklich für jedes Tile einen VB im Speicher halten (es sind immerhin über 5000 Stück, das sind bei 17*17 Vertices, 32 Byte pro Vertex schon 44 MB nur für Vertexbuffer, dass ist nicht wirklich praktikabel).
Christian |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 19.02.2004, 11:50 Titel: |
|
|
buggy...naja, irgendwas um zu demonstrieren wie man etwas 'auf' dem terrain hält, wäre schon nett. man muß ja nicht gleich eine reelle fahrphysik mit driften, etc. einbauen. ich dachte nur, es ist sicher netter als wenn man nur die kamera anpasst.
chris:
ich weiß schon, dass es ziemlich viel ist, irgendwie gefällt es mir aber nicht, für etwas was ich von vornherein berechnen kann, massig performance zu verschenken.
edit: was is wenn man alles in einen vb packt und sich verschiedene IBs speichert? ein jedem tile eben einen IB.
das mit den tiles versteh ich immer noch nicht...die einzelnen tiles müssen doch sowieso in jeder detailstufe zueinander passen, oder nicht? ich mein so irgendwie....
1-3: detailstufen
S: starttile (player)
3333333
3222223
3211123
321S123
3211123
3222223
3333333 |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 19.02.2004, 13:16 Titel: |
|
|
Wenn ich es richtig verstehe, willst du einen VB mit 1025x1025 Vertices haben (?) Und dann Indexbuffer für die Tiles? Das geht auch nicht, da deine Grafikkarte immer den kompletten Vertexbuffer transformiert, auch wenn nur ein Teil genutzt wird. Über eine Millionen Vertices pro Frame zu transformieren ist zu langsam. Außerdem verbrauchst du immer noch recht viel Speicher.
Ansonsten wäre es natürlich schön, wenn man was über das Terrain bewegen könnte - werde mir mal was überlegen.
Zitat: |
das mit den tiles versteh ich immer noch nicht...die einzelnen tiles müssen doch sowieso in jeder detailstufe zueinander passen, oder nicht? ich mein so irgendwie.... |
Klar, nur wenn du mit den nähsten Tile anfängst, wird dies immer in voller Auflösung gerendert, wenn ein Tile das daran angrentzt eine schlechtere Auflösung hat, muss es sich an den Rändern anpassen, was bedeutet, dass du Vertices hinzufügen muss...
Christian |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 19.02.2004, 14:45 Titel: |
|
|
echt? der ganze vb wird immer transformiert? das heißt, dass ich bei egal was für einem tree oder pvs eigentlich immer einen vb in den nodes/sets haben sollte? und nicht einen fetten vb und mehrere ibs? ....wenn ich nicht alle verticen durch die pipeline jagen will?
Christian hat Folgendes geschrieben: | Klar, nur wenn du mit den nähsten Tile anfängst, wird dies immer in voller Auflösung gerendert, wenn ein Tile das daran angrentzt eine schlechtere Auflösung hat, muss es sich an den Rändern anpassen, was bedeutet, dass du Vertices hinzufügen muss...
|
ok, stimmt, das problem hab ich übersehen...
sag mal, werden so lod-systeme generell mit stänigem updaten des vb realisiert? wenn das nämlich eh die gängige methode ist, zerbreche ich mir nicht weiter den kopf darüber...wie gesagt, hab mich da noch nicht so informiert... |
|
Nach oben |
|
|
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 19.02.2004, 14:50 Titel: |
|
|
man könnte ja die Ränder gleich in der höchsten auflösung lassen.
Wenn man dann von vorne nach hinten rendert müsste sich ja eigentlich auch der overdraw verringern. |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 19.02.2004, 14:56 Titel: |
|
|
Wenn die Jungs bei MS nix dran geändert haben ist das nach wie vor so. Sollte man leicht heraus finden können Vertexbuffer wird immer komplett durch die Pipeline geschickt. Was du machst hängt natürlich von der Größe des VB ab. Wenn es wenige Vertices sind ist es egal. Ob du 3 oder 1000 Vertices zur Grafikkarte schickst macht keinen Geschwindigkeitsunterschied aus. Der DrawPrimitive call bedeutet mehr Overhead als die 997 Vertices. TnL können die Karten schon recht schnell
Zitat: | man könnte ja die Ränder gleich in der höchsten auflösung lassen. |
Aber das bedeutet ja genau mit mehr Vertices zu arbeiten. Im Prinzip ginge es, ich denke mal darüber nach. Der Overdraw verringert sich dadurch alleine aber nicht, oder? Es bleiben ja die gleiche Anzahl Tiles. Man könnte so nur einfacher herausfinden, welche sichtbar sind.
C. |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 19.02.2004, 15:08 Titel: |
|
|
ich mein natürlich wenn man einen haufen verts hat...eben ein indoor/outdoor level.
wird der ganze vb schon bei SetStreamSource() zur graka geschickt und transformiert, oder wie?
wenn du die ränder in höchster auflösung läßt, hast du ja wieder dasselbe problem, wenn du den rest vom tile an den rand anfügen willst. |
|
Nach oben |
|
|
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 19.02.2004, 15:21 Titel: |
|
|
Ränder in fester Auflösung:
Man kann die Tiles ja vorher erstellen.
Das ganze nennt sich soweit ich weiß "Geo MipMapping".
Man lädt eben die Geometrie in verschiedenen detailstufen und rendert je nach entfernung eine andere(ähnlich dem Textur MipMapping). Die MipMap Geometrie kann dabei ja schon vorher erstellt sein oder wird beim laden der Map erstellt.
Ob sich das positiv auf die performance auswirkt weis ich nicht, das müsste man wohl testen. Man müsste allerdings die MipMap Stufen zusätzlich im speicher haben...
Overdraw:
Der overdraw müsste sich doch aber verringern wenn man von vorne nach hinten zeichnet. Allerdings nur wenn der Z-Buffer aktiviert ist.
Ob der immer aktiviert ist oder nicht weiß ich nicht. Ich habe mit dem z-Buffer noch keine Erfahrung (kann ja sein dass es mehr aufwand macht alles mit aktiviertem Z-Buffer zu rendern).
Zuletzt bearbeitet von Kampfhund am 19.02.2004, 15:22, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 19.02.2004, 15:21 Titel: |
|
|
Ich denke erst bei DrawIndexPrimitive, dann aber der komplette.
Christian |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 19.02.2004, 15:37 Titel: |
|
|
Ist das nicht eigentlich schon GeoMipMapping was da eingebaut wurde ? In der Beschreibung trifft es zumindest zu. _________________ "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 |
|
|
|
|
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
|