Textur-GrafikKartenSpeicher
Übersicht

![]() |
StarGazerBetreff: Textur-GrafikKartenSpeicher |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo, ich habe eine Frage was Texturen tatsächlich an Speicher wegnehmen.
Ich habe ZB 20 Texturen in mein Program reingeladen. Man sieht aber meistens maximal 5 davon auf dem Bildschrim. Nun ist meien Frage, ob nur diese 5 den Grafikkartenspeicher einnehmen oder alle 20 ? Nehmen immer nur die Texturen die man auf den Bildschirm sieht (brechnet werden) den Grafikspeicher ein, und die Grafikkarte past das immer an, je nachdem was gerade zu sehen, oder liegen einfach alle im dem Speicher der Grafikkarte ? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also erst Mal die Formel um zu errechnen, wieviel Grafikspeicher eine Textur wirklich weg nimmt:
Anzahl Bytes = Höhe * Breite * Farbtiefe (512x512 ist 1MB) Diese Grösse ist unabhängig vom verwendeten Texturformat. JPG Dateien werden also im Grafikspeicher gleich gross sein wie BMP Dateien Und nun zur eigentlichen Frage: Falls die Karte zu wenig Grafikspeicher hat, dann befindet sich jeweils nur das im Grafikspeicher, was auch wirklich dort gebraucht wird zum rendern. Andernfalls belässt DirectX jedoch die Texturen dort, da es immer Bandbreite kostet, die Texturen an die Grafikkarte zu senden. Es ist auch anzumerken, dass das Programm mit einem MAV abbrechen wird, wenn der Grafikspeicher (sowie bei AGP Karten der zugewiesene AGP Speicher) nicht ausreicht, um alle Texturen im Grafikspeicher zu halten, welche gerendert werden müssen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
StarGazer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für rasche Antwort.
Freut mich zu hören, daß bei älteren Karten die Sachen zu Not doch auslagert werden. Ich habe schon meine Code angefangen so umzuprogrammieren, daß ich je nachdem was ich gerade brauche, neu herreinlade, und unnötiges lösche, was jedoch recht aufwändig und nervig ist. Was ist denn MAV ? Das die Texturen imme gleichviel Speicher wegnehmen, habe ich schon gemerkt. Ich habe das mit "Task-Manager" unter "Prozesse" geprüft. Wollte nähmlich viele animierte Shapes machen um Rechenpower zu sparen, und da leider entsetzt merken müssen, das selbst 256 Frab-Texturen genausoviel Speicher wegnehmen wie HighColor-Texturen. Das wars es dann mit den vielen ShapeAnimationen ![]() das würde keine ältere Grafikkarte verkraften. |
||
Rewe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
MAV == Memory Access Violution
Naja, bedenke dabei : die meisten leute haben (denke ich) mindestens 32 - 64mb speicher - da kann man einiges an texturen laden! Ich habe 128, hängt auch dann immer davon ab, wie schnell der Takt der karte ist, wie schnell sie also sachen übertrgen kann und so. |
||
coldie |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
waas? das kann doch nicht sein. Das jpg und bmp im Arbeitsspeicher gleich groß sind will mir ja noch eingehen, aber wenn die anzahl der Farben pro Pixel unterschiedlich sind sehe ich keinen Grund warum sie dann unbedingt gleich viel Speicher brauchen. | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
?? 24Bit für Farben und 8Bit für Alpha macht 32Bit/Pixel. Damit lässt sich eben schnell und einfach rechnen als zB bei einer 16Bit-Farbtiefe (5rot, 6grün, 5blau und Alpha ? nicht vorhanden!). Würde man zB anstelle 32Bit das ganze auf 16Bit mit Alpha reduzieren, dann hätte man 4Bit für jeden Farbkanal. 4Bit würde aber 16Graustufen bzw. 16Farbtöne jedes Kanals bedeuten. Ich muß ja wohl nicht erwähnen, daß sowas echt besc**** aussieht. Und viel eingespart hätte man da nicht 50% und wesentlich langsamer währe es auch, da hier jedes Pixel dann mit AND extrahiert und geshiftet werden müsste...
Man kann aber viel einsparen, wenn man zB die Texturen um eine größe reduziert. Also von zB 512x512 auf 256x256, dann hätte man es gleich auf 25% gebracht und eine gut gemachte Textur würde da auch nicht gleich soviel schlechter aussehen als mit 16Bit... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group