2011-09-30 19 views
7

WebGL è noto per avere poor support for NPOT (non-power-of-two) textures. Ma per quanto riguarda le trame rettangolari in cui sia la larghezza che l'altezza sono due potenze? Nello specifico, sto provando a disegnare un framebuffer rettangolare come parte di uno schema render-to-texture per generare alcuni elementi dell'interfaccia utente. Il framebuffer dovrebbe essere 512x64 o circa.Texture WebGL e rettangolare (potenza di due)

Quanto sarebbe meno efficiente in termini di disegno? Se il framerate è un problema, farei meglio ad allocare un buffer power-of-two-size di 512x512 e renderizzare solo i 64 pixel più in alto, sacrificando la memoria per la velocità?

risposta

8

Non c'è mai stato il vincolo per quella larghezza deve essere uguale altezza.

+0

Per sviluppare un po 'di più in questa risposta: alcune estensioni di texture compresse * richiedono * che le trame siano uguali in larghezza e altezza (WebGL non le supporta), ma non è una limitazione né un risultato di prestazioni a OpenGL standard/Comportamento WebGL. – Chiguireitor

2

In particolare: le texture 2D non devono necessariamente essere quadrate; una trama 512x64 non solo è consentita, ma dovrebbe anche essere implementata in modo efficiente dal driver; d'altra parte le mappe dei cubi devono essere quadrate.

Per le trame 2D, è possibile utilizzare le trame NPOT se entrambe le modalità di avvolgimento sono CLAMP_TO_EDGE e il filtro di minificazione non richiede una mipmap. L'efficienza della trama NPOT può variare a seconda del driver.

Problemi correlati