RAM und Grafikspeicher - wohin womit?
Übersicht

![]() |
MercedBetreff: RAM und Grafikspeicher - wohin womit? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, da ich für mein Projekt "Starship Battles" wieder anfange (hatte ich damals schon in DarkBasic) ein großes Gebiet mit recht vielen Objekten zuzupflastern (um eine Galaxie zu bauen) stellen sich mir ein paar Fragen, Speichertechnischer Natur.
Im Prinzip geht es mir darum zu wissen ob Objekte in den Folgenden Fällen nur im Grafikspeicher, nur im RAM oder an beiden Orten gespeichert sind: Objekte: 1. Ein Objekt (Mesh), das geladen ist, sich aber außerhalb der Sichtweite befindet. 2. Ein Objekt, das sich in der Sichtweite befindet, aber außerhalb des Sichtbereichs (beispielsweise hinter der Kamera). 3. Ein Objekt, das im Sichtfeld der Kamera liegt, aber von einem anderen Objekt vollständig verdeckt wird. 4. Ein Objekt, das im Sichtfeld der Kamera liegt, aber unsichtbar ist (HideEntity). 5. Ein Objekt, das im Sichtfeld der Kamera liegt und sichtbar ist. 6. Ein Objekt, das außerhalb der Sichtweite liegt und unsichtbar ist. 7. Ein Objekt, das in Sichtweite, hinter der Kamera liegt und unsichtbar ist. Texturen: 8. Eine Textur die geladen ist, aber nicht verwendet wird. Ansonsten geh ich davon aus, dass die Textur da liegt wo auch das Modell liegt, wenn sie auf einem draufklebt ![]() Ach ja: Objekte die außerhalb der Sichtweite befinden werden doch von der GraKa nicht berechnet, oder? So, ich hoffe ich hab jetzt keinen Müll verzapft, weil man ja in manchen Foren ganz schoön um die Ohren kriegt wenn man das tut, also verzeiht meine Unwissenheit ![]() |
||
http://www.starship-battles.de.vu
http://www.venture-interactive.de.vu |
IonPainter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Ach ja: Objekte die außerhalb der Sichtweite befinden werden doch von der GraKa nicht berechnet, oder? sie werden zumindest in irgendeiner form berechnet, also um noch mehr speed zu bekommen musst du überprüfen ob objekt sichtbas ist (EntityInView) und wenn nicht, dann hideentity... |
||
![]() |
Merced |
![]() Antworten mit Zitat ![]() |
---|---|---|
Stimmt, denn zumindest muss ja geprüft werden, ob das Objekt in Sichtweite ist und somit berechnet werden muss. Aber das tut doch dann die CPU und nicht die GPU, oder?
Geschwindigkeit bringt es aber sicherlich, wenn man die Prüfung ob das Objekt sichtbar ist in größeren Abständen durchführt. (Ansonsten kann man es gleich sein lassen ![]() |
||
http://www.starship-battles.de.vu
http://www.venture-interactive.de.vu |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, wenn es auserhalb der Reichweite ist, kommt der Befehl distance Bei BB intern zum einsatz, der vom mittelpunkt ausgeht darum muss nicht gerendert werden, es werden nur Objekte Berechnet, die im "Sichtfeld" der Kamera sind.
Wenn objekte verdeckt sind, sind sie nicht nur im Ram, sondern werden auch komplett mit berechnet. (schalte mal wireframes eion, dann siehst du es!) Alle objekte werden im Ram abgelegt, texturen können per Texturfilter Textur,256; Speichert Textur in VRAM = schneller in den Graka- Speicher geladen werden! Entity inview ist relativ Langsam, darum eigentlich nicht zu empfehlen! Wenn du Galaxien Wechseln willst, müsste ich wissen, ob, jedes Objekt in Jeder Galaxie anders ist, oder obdu fast alle wiederverwendest? |
||
between angels and insects |
![]() |
Merced |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Nein, wenn es auserhalb der Reichweite ist, kommt der Befehl distance Bei BB intern zum einsatz, der vom mittelpunkt ausgeht darum muss nicht gerendert werden, es werden nur Objekte Berechnet, die im "Sichtfeld" der Kamera sind.
Das war ja grad gemeint, die Entefrunungsberechnung muss BB immer ausführen, außer Du machst sie selber (in genügend großen Abständen) um Sehr weit entfernte Objekte auszublenden. Aber meine eigentliche Frage hast Du ganz gut abgedeckt. Befindet sich ausser den Buffern überhaupt was im Grafikspeicher, solange Du nicht Texturen dahinschiebst? |
||
http://www.starship-battles.de.vu
http://www.venture-interactive.de.vu |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, soweit ich weiß, der Front und Backbuffer (berechnet man, indem man graphicswidth*graphicsheigth*2*Bit/4 Ausrechnet in byte + reichlich, weil da nch mehr drin ist. Das berechnet den Benötigeten Grafikspeicher für Front und Backbuffer in byte!) und dieGanzen Texturen, die man rein Lädt, und auserdem, Was BB so rein lädt (ca.1-2 MB)
Bei T&L könnte man stark annehmen, das die Grafikkarte mehr braucht am Ram! So, zu dem Thema Passend, alle Texturen und Bilder sind im Speicher so groß, als ob sie BMP währen, scale Texture setzt die Größe der Textur, nicht die Auflösung! (--> Hochaufgelößte Texturen) Flip 0 macht V-sync aus, Wenn man freetexture bei einer Benutzten texture macht, wird der Befehl nicht aus geführt --> am ende des Levels immer clearworld (oder so ähnlich!) Den Hauptspeicher kann man abfragen: Byte=AVAILVIDMEM () Byte=TOTALVIDMEM () Usedmem = TOTALVIDMEM ()- AVAILVIDMEM () Spiele Mal Dogfight, das ist gut, für Weltraumspiele (ist zu Zeit nicht downloadbar, aber Shoden, will es jetzt bei mir auf den Space setzten!) Ist sicher sehr iel dabei, was du schon weißt, aber da es hier angesprochen wurde, habe ich etwas weiter ausgeholt, damit auch "neulinge" sich schnell spezial wissen aneigenen! |
||
between angels and insects |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group