2013-06-05 14 views
6

Sto lavorando con AndEngine e OpenGL ES 2.0. Continuo a leggere su GL_MAX_TEXTURE_SIZE e su come dovrei mantenere le mie texure sotto 1024x1024. Ho iniziato a sbagliare prima e mentre utilizzo i tileset nell'estensione TMX (non importa cosa sia, se non conosci AndEngine) ottengo un tileset che rende una texture più ampia di 1024px. Sto pensando di dividere il tileset in due, rendendoli "sicuri". Ma non riesco a trovare alcun dispositivo rilasciato negli ultimi due anni che ha questo limite impostato su 2048x2048. C'è un elenco o un sito Web che posso utilizzare per filtrare i dispositivi entro il GL_MAX_TEXTURE_SIZE?Dispositivi Android GL_MAX_TEXTURE_SIZE limitazione, dimensione trama sicura


Ho letto le seguenti domande:

And I used this site to search for devices. Ma non posso cercare per/filtro GL_MAX_TEXTURE_SIZE, il che rende la ricerca noioso. Sto chiedendo soprattutto perché ho iniziato male, è un progetto di hobby e la quantità di lavoro potrebbe essere troppo grande rispetto al numero di dispositivi possibili che saranno abilitati (mi aspetto 0).

+0

È possibile interrogare il vostro dispositivo Android in codice Java utilizzando: int [] max = new int [1]; GLES20.glGetIntegerv (GLES20.GL_MAX_TEXTURE_SIZE, max, 0); – Antinous

risposta

6

1024x1024 è la soluzione più sicura che tu possa utilizzare su qualsiasi dispositivo, specialmente su quelli più vecchi. I dispositivi più recenti non dovrebbero avere alcun problema, anche se ho visto dispositivi recenti (ricordo un Galaxy Nexus, il più recente aggiornamento di ICS ha risolto il problema), per rendere i quad bianchi con dimensioni della trama di 2048x1024.

Se si stanno prendendo di mira nuovi dispositivi e si desidera mantenere compatibili quelli meno recenti, non dovrebbe fare male dividere i tileset. Dopo tutto, non è probabile che tu faccia troppe interruzioni di contesto se usi due o tre sprite sheets per lo sfondo, ecc.

+0

Il problema è che ho progettato molti livelli usando il formato file TMX e usando questo tileset. Rompendo per adattarsi a 1024 si rompono anche tutti i livelli. Probabilmente potrei scrivere uno script per rinumerare le tessere nella mappa, ma il livello della mappa viene salvato in formato zip all'interno di XML. Per farla breve, lo farò se scoprirò che rompe il gioco per molti telefoni. Altrimenti passerò e lo ricorderò solo per progetti più seri. – sm4

+1

C'è un'altra cosa che potresti fare ... prima di caricare una trama in OpenGL devi caricarla come una bitmap, puoi dividere la trama in quattro (creare quattro bitmap), caricare tutti i quarti in trame diverse all'interno di opengl e quindi salvare i puntatori di trama in una singola rappresentazione di Sprite. È quindi possibile mappare le coordinate UV da un quarto a un bitmap completo e associare la trama specifica necessaria. Caricherà più lentamente, ma forse è accettabile per te. In bocca al lupo! – RedOrav

+2

Penso che la mia domanda non abbia veramente chiesto ciò di cui ho bisogno.Tuttavia, hai risposto correttamente. Grazie. – sm4

1

Se hai ancora i singoli file di immagine, suddividili in atlanti di piccole dimensioni o in atlanti di dimensioni personalizzate è facile se usi lo strumento TexturePacker2 dalla libreria LibGdx.

Non conosco la limitazione esatta dei dispositivi, ma è sempre meglio prendere in considerazione la parte più bassa del dispositivo che si desidera supportare e costruire verso l'alto da lì. Utilizzando lo strumento LibGdx, puoi facilmente cambiare idea in seguito, quindi è la soluzione più flessibile.

un'occhiata a: LibGdx TexturePacker

Problemi correlati