2014-06-07 21 views
6

Lo so che sui dispositivi mobili è diversa la texture più grande che si può rappresentare in un singolo disegno: a volte è solo 1024x1024 - altre 2048x2048 ecc.Esiste una dimensione massima della trama libGDX per desktop?

Che cosa è il caso dei giochi desktop? Sto usando OpenGL 2.0.

Ho intenzione di disegnare un singolo sprite di sfondo che potrebbe essere grande come 5000x5000. Immagino che TexturePacker non sia abbastanza utile in questo scenario, perché non ho davvero bisogno di un atlante poiché sto solo provando a creare un singolo sprite.

Sì, ho appena testato per 5000x5000 e funziona perfettamente. Mi chiedo solo se c'è un limite effettivo da considerare. Forse differisce da un computer all'altro?

risposta

8

La dimensione massima della trama è una funzione di OpenGL, che lascia la dimensione al driver del dispositivo della scheda video (entro limiti).

È possibile verificare a run-time per vedere quali sono i limiti riportati (anche se vedere Confusion with GL_MAX_TEXTURE_SIZE per alcuni avvertimenti).

Per scoprire quale varietà di report hardware in pratica, ci sono alcuni siti che raccolgono database di risultati dagli utenti (principalmente interessati alle prestazioni del benchmark), che spesso raccolgono anche dati come la dimensione massima della trama. (Ad esempio, gfxbench.com o http://opengl.gpuinfo.org/gl_stats_caps_single.php?listreportsbycap=GL_MAX_TEXTURE_SIZE)

Penso che su un desktop moderno la GPU 5000x5000 sarà ben al di sotto del limite supportato.

11

In aggiunta a ciò P.T. detto, volevo fornire il codice per quello (in libGDX).

IntBuffer intBuffer = BufferUtils.newIntBuffer(16); 
Gdx.gl20.glGetIntegerv(GL20.GL_MAX_TEXTURE_SIZE, intBuffer); 
System.out.println(intBuffer.get()); 

Sul mio sistema desktop questo si traduce in 4096, il che significa che la dimensione massima supportata è 4096x4096. Il mio sistema però non è così vecchio. Probabilmente non si dovrebbe presumere che 5000x5000 sia disponibile su tutti i sistemi desktop. Di solito non hai bisogno di trame così grandi da non supportare tutte le GPU. Puoi sempre suddividerlo in più trame e disegnarlo su più quad l'uno accanto all'altro per risolvere il problema.

Problemi correlati