Textur als RenderTarget/outofVideomem 2d-Engine
-
hallo
Ich möchte(wie so viele andere auch) eine kleien 2D- Engine schreiben.
ich habe mir das folgendermaßen ausgedacht:
ich erschaffe eine Textur die 1024*768 pixel groß ist als Hintergrundbild. Wird danna auf 2Vertizen gehauen. Alles weitere wird dann auf dieses bild gerendert.Meine erste Frage ist ob das eine schnelle und gute Lösung verspricht oder ob man so etwas in der Regel anders realisiert wird
Weiterhin habe ich das Problem das ich ohne Probleme auf meinem Rechner 2 Texturen herstellen kann, sobald ich aber die Textur als RenderTarget erzeuge hat er nicht
genug Videospeicher. hResult == OutofVideomemory.ich habe da in meiner unwissenheit mal ein wenig gerechnet.
meine GraphikKarte hat 8 MB Speicher(nicht schlecht oder?),mein Device hat einen 16bit zbuffer ,d.h. das er für jedes Pixel 2 byte verbraucht
1024 * 768 * 2 ca. 1,5 MB
meine Textur hat wird mit 8 bit pro farbe erzeugt und eine textur wird mit 1024*1024 erstellt
1024 * 1024 * 3 ca 3 MBalso 2 texturen
23+1.5 = 7.5MB klappt
eine Textur alsRebdertarget (d.h. es gibt noch einen zBuffer
3+21.5= 6MB klappt nicht ???kann man das überhautpt so rechnen ???
hat so ein Rendertarget noch mehr Speicherfresser?
gibt es eine möglichkeit den Vidoespeicher zu überwachen??
liegt das Problem vielleicht irgendwoanders??beim Erschaffen der Textur verändere ich nur die eine Eigenschaft in Rendertarget. Der Speicherpool steht auf D3DPOOL_default
ich hoffe irgendwer hat die Ausdauer sich das alles durchzulesen und mir eine Antwort zu schreiben
Danke muli
-
Brauchst Du denn den Z-Buffer überhaupt bei einer 2D-Engine?
-
will damit festlegen welches bild vorne liegt?
was ist denn mit den anderen Fragen?
-
muli schrieb:
kann man das überhautpt so rechnen ???
hat so ein Rendertarget noch mehr Speicherfresser?
gibt es eine möglichkeit den Vidoespeicher zu überwachen??
liegt das Problem vielleicht irgendwoanders??Ja, nur dann muss man auch richtig rechnen. Erstmal nicht. Das wurde schonmal gefragt, bin aber zu faul zum Suchen. Glaub ich nicht.
Du legst bestimmt 32Bit Rendertargets an. Macht also 4 Mb Textur und nochmal 4Mb Z-Buffer. Dann sind 8Mb schon weg.
Bye, TGGC
-
muli schrieb:
will damit festlegen welches bild vorne liegt?
Das geht auch anders. Einfach die Bilder in der richtigen Reihenfolge rendern. Du kannst ihnen ja intern einen Z-Wert verpassen und dann alle darzustellenden Bilder anhand dieses Z-Wertes sortieren.