Was genau bringt eigentlich TexFlag 256?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

FireballFlame

Betreff: Was genau bringt eigentlich TexFlag 256?

BeitragSo, Jan 20, 2008 2:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
vermutlich ist das eine dumme Frage Sad , aber:
wann ist es sinnvoll, eine Textur mit Flag 256 zu erstellen und wann ohne?

Blitzbase sagt nur: "[256] Speichert Textur in VRAM = schneller"
und hier im Forum hab ich nix dazu gefunden.

Ich habe in meinem Spiel habe eine Textur, in die in jedem Hauptschleifendurchlauf mit CopyRect hineingemalt wird. Dabei habe ich festgestellt, dass dies mit Flag 256 grundsätzlich schneller läuft als ohne. Ab einer Texturgröße von 2048² sieht das aber anders aus: während die Textur ohne Flag immernoch ungefähr so schnell ist wie vorher, dauert mit Flag der CopyRect-Befehl auf einmal mehrere Sekunden und macht das Ganze vollkommen unspielbar.
--- Woran kann das liegen?
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

NightPhoenix

BeitragSo, Jan 20, 2008 10:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Soweit ich weiß verursacht der Befehl (zumindest bei mir) auch noch, dass keine verschieden aufgelösten Zwischentexturen der textur erstellt werden. Glaube das heißt Mipmap.
Umso weiter du weg bist von dem Objekt mit der Textur desto unschärfer wird ja die Textur, was durchaus real rüberkommt.
Mit Flag 256 bleibt die textur aber so scharf aufgelöst, was die textur auf Entfernung verpixelt aussehen lässt, weil bei großen Entfernungen manchmal Pixel3 der Textur und manchmal Pixel5 dargestellt wird, welche aber völlig andere farbwerte besitzen.

hier mal ein vergleich:
Normal
http://marinext.ma.funpic.de/i..._Flag1.PNG

Flag256
http://marinext.ma.funpic.de/i...lag256.PNG
Der Unterschied sollte klar und deutlich zu sehen sein


Außerdem flackert die Textur etwas in den einzelnen Pixeln auf dem Monitor wenn man sich bewegt... ziemlich unschön, aber für Texturen welche immer auf selben Abstand bleiben perfekt (Bsp. Himmel/Wolken)
Damit ist schoneimal die eine Frage beantwortet ^^

Ich glaube weil Flag256 keine kleinen Zwischentexturen für verschiedene Abstände erstellt ist diese für kleinere Texturen schneller, bei größeren hat dann Flag1 den Geschwindigkeitsvorteil.
Wieso weshalb VRam manchmal schneller usw. erklärt dir besser ein Profi. Unter unseren Mods gibts da ganz paar die sich super damit auskennen Wink

Xaron

BeitragSo, Jan 20, 2008 11:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn die Textur im VRam gespeichert wird, kann die Grafikkarte einfach viel schneller drauf zugreifen. Im Normalfall muss man sich um sowas nicht kümmern, mit Flag 256 kann man das aber erzwingen. Wirklichen Sinn ergibt das nur bei Texturen, die sich nicht mehr ändern. Das ganze ist nämlich für gewöhnlich eine Einbahnstraße. Muss man also was an der Textur ändern, geschieht dies im Hauptspeicher. Die komplette Textur wird dann neu hochgeladen, was auch etwas Zeit kostet.

Die 2048er Textur braucht einfach enorm viel Speicher. Entweder passt sie nicht rein ins VRam oder aber (das ist wohl wahrscheinlicher), andere Texturen müssen entfernt werden, damit sie reinpasst. Das wird also in einem ewigen hin und her-geswappe enden, so dass das ganze noch langsamer wird, als wenn er die große 2048er Textur direkt aus dem Hauptspeicher liest...

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

FireballFlame

BeitragSo, Jan 20, 2008 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
@NightPhoenix: Das mit den MipMaps kann mir eigentlich egal sein, weil die Textur eh immer direkt vor der Kamera klebt. Ich benutze die für einen Blur-Effekt. Weil 2D-Befehle wie Text oder Images auch mitgeblurt werden sollen, kann ich auch nicht einfach eine kleinere Textur nehmen Sad

Xaron hat Folgendes geschrieben:
Wirklichen Sinn ergibt das nur bei Texturen, die sich nicht mehr ändern.

Bei mir ist das aber umgekehrt? D.h. wenn ich die Textur ständig ändere, ist sie mit Flag 256 deutlich schneller (zumindest unter 2048²). Wenn ich sie nicht mehr ändere, ist sie ohne Flag etwas schneller.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit
 

Dreamora

BeitragSo, Jan 20, 2008 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Flag 256 ist explizit nur für Texturen die man häufiger ändert. Sonst läuft man nämlich gefahr, dass sie garnimmer da ist, wenn man sie "verwaisen" lässt und dann einen MAV kassiert.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

FireballFlame

BeitragSo, Jan 20, 2008 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Das tu ich ja...
Ich habs jetzt erstmal so umgangen, dass automatisch auf eine Textur ohne 256-Flag umgeschaltet wird, wenn das CopyRect länger als eine halbe Sekunde dauert. Das funktioniert erstmal (das Spiel stockt nur und wird dann wieder spielbar), aber schön isses natürlich nicht...
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Xaron

BeitragSo, Jan 20, 2008 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstaunlich. Dann ist das wohl aber anders umgesetzt, als ich es mir denken würde. Wink Dann wird die Textur also jedesmal komplett ins VRam kopiert, wenn sie geändert wurde. Das das schneller ist als das andere Verfahren, lässt übles vermuten. Wink

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

FireballFlame

BeitragSo, Jan 20, 2008 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
?
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group