Tile Maps



  • cooky451 schrieb:

    Nö, ist es nicht.

    Ist ja interessant. 😃

    Ich würde gern etwas genauer aufgeklärt werden.



  • Ki schrieb:

    Ich würde gern etwas genauer aufgeklärt werden.

    Daran gibt es eigentlich nicht viel zu erklären. Rendercalls sind teuer und mit einer fertigen Textur brauchst du nur einen statt ~50.



  • cooky451 schrieb:

    Ki schrieb:

    Ich würde gern etwas genauer aufgeklärt werden.

    Daran gibt es eigentlich nicht viel zu erklären. Rendercalls sind teuer und mit einer fertigen Textur brauchst du nur einen statt ~50.

    Danke, das war mir mit OpenGL nicht bewusst. 🙂



  • wenn ich also max eine mapgröße von 1000*1000(*beliebiger tile größe) tiles wäre das zu viel?
    nochmal splitten, nach 100tiles, also das jedes bild max 100*100 tiles umfasst, oder ist ein etwa 32k-pixle *32k-pixel bild noch in ordnung? hab da wenig erfahrung mit 😛



  • Ki schrieb:

    Danke, das war mir mit OpenGL nicht bewusst. 🙂

    Das gilt auch für DirectX.

    @anti-freak:
    Die Anzahl der Tiles ist der Textur egal, wichtig ist die Größe der Textur. Ich bin mir nicht ganz sicher wie groß die bei halbwegs modernen Grafikkarten so sein dürfen und was genau DirectX garantiert. 32k*32k scheint mir allerdings schon ziemlich groß zu sein. Hast du mal daran gedacht, die Karte in verschiedene Bereiche aufzuteilen, deren statische Elemente du dann in einzelne Texturen renderst? (Das wird natürlich recht kompliziert, lohnt sich also nur, wenn du jetzt bereits Performanceprobleme bekommst. Das sollte eigentlich eine Sache sein, die man zur Not auch später noch ändern kann.)



  • cooky451 schrieb:

    @anti-freak:
    Die Anzahl der Tiles ist der Textur egal, wichtig ist die Größe der Textur. Ich bin mir nicht ganz sicher wie groß die bei halbwegs modernen Grafikkarten so sein dürfen und was genau DirectX garantiert. 32k*32k scheint mir allerdings schon ziemlich groß zu sein. Hast du mal daran gedacht, die Karte in verschiedene Bereiche aufzuteilen, deren statische Elemente du dann in einzelne Texturen renderst? (Das wird natürlich recht kompliziert, lohnt sich also nur, wenn du jetzt bereits Performanceprobleme bekommst. Das sollte eigentlich eine Sache sein, die man zur Not auch später noch ändern kann.)

    naja, performance probleme sind was anderes^^

    meine überlegung war, die map entsprechend zu splitten, also in 10*10tiles (wären dann 320*320bilder), und diese kleinen stücke dann entsprechend dem was ich anzeigen will, kurz nachzuladen. das wären dann, wenn auf dem bildschirm 20*15 tiles angezeigt werden, eine maximale speicherbelastung von 9 mal 320*320 bildern, was denke ich noch vertretbar sein sollte, und den draw prozess doch schon drastisch verschnellern würde.
    bin im moment bei 20*15tiles auf dem bildschirm zeichnen im release mode auf etwa 1-2% prozessor last (klar, auch noch weitre nebefunktionen eingeschaltet, aber das größte is der map draw), würde bei höherer auflösung aber dennoch schnell in die höhe gehen, weswegen ich dem durch diese technik gerne entgegen wirken würde.
    ich muss an für sich auch immer ein wenig an ältere grakas denken, weil ich ja nicht umsonst dx9 verwende, um eben auch pcs mit winXP oder früher noch supporten zu können. wenn ich durch diese technik dann aber den kartenspeicher sprenge, wäre das definitiv nicht in meinem interesse 🙂



  • 4096x4096 ist eine gängige Limitierung im Moment, denke ich. Das sind bei 32bit pixeln schonmal 64 Mb. Davon passen selbst auf viele moderne Grafikarten nur ein bisschen mehr als 15 (wenn man sonst nix im Ram der Grafikkarte hat).


  • Mod

    es waere vermutlich effektiver alle drawcalls in einem vertexbuffer zu vereinen, statt nur das fertige bild, so koenntest du sogar alle dynamischen dinge mit einbinden.
    du wuerdest dann vielleicht auch mit nur einer tilemap zurechtkommen, 8192x8192 sollten alle gaengigen grakas koennen und mit dxt1 hast du am ende 16MB im vram dafuer.



  • wie sieht das mit älteren grakas aus, uneingeschränkter support möglich? klingt eigentlich nach einer super möglichkeit 🙂

    ich rede mal überspitzt gesagt von 16mb onboard grafikchips in einem laptop.



  • Ich hatte mit meinem Laptop (intel hd grafikkarte) schon probleme gehabt mit zu großen bildern. Die verwendeten bilder waren dabei sogar noch etwas kleiner wenn ich das richtig in erinnerung habe.


Anmelden zum Antworten