#1 19.09.2006 12:42:00

Dreamworld
UltraMember
Ort: Karlsruhe
Registriert: 06.12.2005
Beiträge: 368

Ressourcen laden

Hab ein paar etwas generelle Fragen, weiß nich so wirklich ob das hier rein gehört, aber ich handle nach bestem Wissen und Gewissen  big_smile

Wann lade ich meine Ressourcen? Also Meshes, Texturen,...

Angenommen ich werde alle Ressourcen noch brauchen.

Wenn zu Programmstart, dann werde ich ja nie das Mesh freigeben, wenn es z.B. stirbt, sondern nur die Klasse, die so Sachen wie Matrix,... verwaltet.
Ich lade die Ressourcen in den VRam, reicht mir da der Speicher? Muss ich da was beachten?
Angenommen der Speicher wird gesprengt....was passiert?

Wenn nicht zu Programmstart: Das ruckelt doch bestimmt  :?

Joa das wars erstmal.

Offline

 

#2 19.09.2006 12:47:44

JorEl
ExtremeMember
Registriert: 29.01.2005
Beiträge: 894

Re: Ressourcen laden

Hängt in erster Linie von deiner Anwendung ab - wenn du alles im Speicher unterbringst solltest du es natürlich beim Programmstart/Levelstart/etc. starten und danach wieder freigeben wenn es nicht mehr benötigt wird... im unangenehmen Fall, dass du so grosse environments hast, dass diese nicht im Speicher untergebracht werden können brauchst du natürlich ein entsprechend gutes ressourcenmanagement dafür - und sowas ist alles andere als trivial. Der erste Schritt ist, dass man sich mal überlegt wann man was laden muss und wann etwas wieder freigegeben werden kann - wenn man darauf mal passenden Antworten hat wird es wieder einfacher, denn dann kann man in einem zweiten thread das laden übernehmen (mal in den Hauptspeicher, denn paralleles rendern und laden ins vram kommt nicht so gut) und dann wenn es benötigt wird in den Grafikspeicher kopieren. Das Problem ist in erster Linie wirklich nur darauf beschränkt, dass es sehr schwierig ist zu sagen wann man Ressourcen laden muss und wann sie wieder freigegeben werden können. Ein relativ einfacher Ansatz wäre, dass man die Welt in ein grid unterteilt und ausgehend von der Bewegung des Betrachters entscheidet welche grids geladen und welche freigegeben werden müssen.

JorEl


Jesus hat gesagt - selig sind die, die da Leid erfahren, denn sie sollen getröstet werden... Ford Prefect hat gesagt - es ist unheimlich wichtig, dass wir miteinander reden und einen trinken.

Offline

 

#3 19.09.2006 14:36:31

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: Ressourcen laden

Schau dir mal das Resourcenmanagement in meinem Nettank an.
http://www.delphidev.de/phpBB2/viewtopic.php?t=1098

Das ist sicherlich nicht perfekt, aber gibt dir vielleicht nen paar Ideen.

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#4 19.09.2006 18:16:10

Dreamworld
UltraMember
Ort: Karlsruhe
Registriert: 06.12.2005
Beiträge: 368

Re: Ressourcen laden

Also wäre es möglich, dass ich das, was ich nicht brauche im moment in den Ram zu verschieben? Weil aus dem VRam ganz löschen, wenn ich das nur temporär nicht brauche find ich nicht gerade logisch...das ist nicht ganz rausgekommen aus deiner Antwort, ob das so meinst.

Threat sagt mir jetzt außer dem standartwissen nicht viel...gibts da nen gescheiten Artikel?

@Coolcat Hab ich mir angeschaut, aber hab jetzt nichts gefunden konkret über meine Frage, also wann und wie ich die Ressourcen freigeben kann..vielleicht war ich auch nur blind.

Offline

 

#5 19.09.2006 21:59:47

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: Ressourcen laden

Zitat:

@Coolcat Hab ich mir angeschaut, aber hab jetzt nichts gefunden konkret über meine Frage, also wann und wie ich die Ressourcen freigeben kann..vielleicht war ich auch nur blind.

Das ist auch in meinem Entwurf nur theoretisch vorgesehen. Implementieren werde ich das vorerst nicht.
Wie und wann du Resourcen freigibst ist von der Art des Spiels abhängig das du machen willst. Bei meinem Nettank würde ich das abhänig von der Entfernung machen. Also alles was in den nächsten 10 sek ins Bild kommen kann befindet sich im Speicher. Alles andere kann durch andere Daten ersetzt werden. Dabei werden die am weitesten entfernten Objekt zuerst weggeworfen.
Zusätzlich kann man noch eine Abhängigkeit vom Aufwand des wiederladens einbauen. (Kleinkram ist ja auch wieder schnell geladen wann man ihn braucht)

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#6 20.09.2006 10:25:02

Dreamworld
UltraMember
Ort: Karlsruhe
Registriert: 06.12.2005
Beiträge: 368

Re: Ressourcen laden

Und das, was gerade nicht geladen ist...wo befindet sich das? Im RAM oder nur auf Platte?

Offline

 

#7 20.09.2006 10:50:47

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: Ressourcen laden

Ich denke mal im RAM. Aber das ist nicht festgelegt.

Überlege am besten zuerst einmal ob du überhaupt solche gigantischen Spielwelten hast das du solche Features brauchst. z.B. selbst HL2 gibt es doch noch Ladepunkte...erst bein Unreal 3 soll es sowas nicht mehr geben.

Coolcat


My software never has bugs. It just develops random features.

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson