Level wird nicht mehr geladen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Puccini

Betreff: Level wird nicht mehr geladen

BeitragFr, Aug 03, 2007 13:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Ich schon wieder, sorry.

Ich hab eine Dynamische Levelladung erstellt und wollte die grad etwas optimieren, indem ich bevor ich ein objekt lade erstmal frage ob den die distance auch passt.

Das mache ich indem ich ein Pivot erstelle und dann an die position des zu ladenden objekt lege mit Positionentity. Danach kommt die Abfrage auf entfernung mit entitydistance pivot,player und wenn die stimmt soll das objekt geladen werden. nur mein problem es werden keine objekte mehr geladen o.O

liegt das daran das ich net update/renderworld nach dem umpositionieren des Pivots mache? das das system quasi mit alten werten arbeiten muss und das net packt??

Und noch eine frage, wenn ich viele Pivots erstelle, muss ich die auch wieder Freen oder belasten die die graka und den rechner net wirklich???
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39
 

Dreamora

BeitragFr, Aug 03, 2007 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Pivots solltest du freen.
Sie belasten zwar die GPU net, aber sie werden das Objekthandling mit der Zeit belasten.

Aber was du da machst ist höchstgradig unratsam.
Laden zu laufzeit führt dazu das Blitz stehen bleibt bis das Laden abgeschlossen ist. Wenn alle Texturen schon im Speicher sind, kein Problem.
Sind sie es aber nicht müssen sie geladen werden und Mipmapps erzeugt werden. Da bleibt dann Blitz gerne ma ne halbe Sekunde stehen.


Am besten lädst du alles am Anfang des Levels, machst einmal renderworld (damit die Daten an die Grafikkarte geschickt werden der Dinge die im Sichtbereich des Starts sind) und danach hidest du alle Entities.
Damit hast du auch eingesparte GPU Leistung und kannst sie später bei bedarf wieder anzeigen / hiden.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Puccini

BeitragFr, Aug 03, 2007 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm, das geht leider net alles am anfang, weil meine welt ca 20x20km gross wird und ich immer einen bereich um den spieler herum von ca 500m radius nur lade und 250m anzeigen lasse, dh aller 250m werden die neuen objekte nachgeladen und die weit entfernten gefreet. so wie bei Morrowind Wink und da stören mich die ladebalken auch net sonderlich. zur zeit läds ca ne halbe sek pro bereich, sind aber nich mal annähernd alle objekte im level die sein sollen, also rechne ich am ende mit ca 1-1,5 sek ladezeit! Das is in meinen Augen verträglich, da man ewig sich in dem 250m radius bewegen kann und vieles zu tun bekommen wird und da stören einen diese "laderuckler" dann auch net mehr. Ich weis das BB nich das volldynamische nachladen unterstütz wie es zB in Gothic genutzt wird, da es auf jeden Thread der gestartet wird wartet (zB Ladethread).

Wie kann ich dann aber mein problem lösen?? liegt es daran das das system nich die koordienaten übernimmt die ich dem pivot gebe??

Bsp:
For-Schleife mit ca 500 durchläufen
x,y,z koordinaten einlesen
Pivot positioniern
Abfrage der entfernung
gegebenen falls Laden des Mesh
next

Ich vermute das es daran liegt das innerhalb der Schleife nie UpdateWorld aufgerufen wird und daher halt eine falsche Abfrage stattfindet.
Aber jeden schleifendurchlauf update world auszuführen halte ich für schwachsinnig da es zu viel zeit kostet oder?
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39
 

Dreamora

BeitragFr, Aug 03, 2007 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitz hat keine Ladethreads. Es wird alles in dem einenen Thread gemacht den du mit dem Start des Programmes und des Processes initierst.

Aber in dem Fall macht es Sinn später nachzuladen.
Wie gesagt, solange die Texturdaten schon vorhanden sind, weniger ein Problem, dann hält sich der Spass in Grenzen oder wenn du keine High Quality Texturen nutzt.
Vergess aber net den alten Sektor wieder freizugeben, damit die Texturen aus dem RAM entfernt werden können, sonst kommst du bald auf unglücklich viel RAM Verschleiss.

Was dein Problem betrifft.
Mir fehlt da ein elementarer Befehl: wo positionierst du das neu geladene Mesh an die Position des Pivots via PositionEntity?
Pivot positionieren ist schön, aber geladene Meshes bzw. die Entities in welchen sie in die Welt gesetzt werden, werden bei 0,0,0 positioniert.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Puccini

BeitragFr, Aug 03, 2007 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
~EDIT~

Oki Leute, jetzt geht wieder alles!

Es hat mich schon stuzig gemacht weil es auf einmal als ich den Leveleditor angeschmissen habe ging!

Hatte eine falsche Bereichsaktuallisierung eingebunden!
Sorry nochmal fürs nerven ^^

Der Thread kann gelöscht werden Embarassed
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group