2011-09-30 27 views
7

Se sabe que WebGL tiene poor support for NPOT (non-power-of-two) textures. Pero, ¿qué pasa con las texturas rectangulares donde tanto el ancho como la altura son potencias de dos? Específicamente, estoy tratando de dibujar en un framebuffer rectangular como parte de un esquema de renderizar a textura para generar algunos elementos UI. El framebuffer necesitaría tener 512x64 o más o menos.WebGL y texturas rectangulares (potencia de dos)

¿Cuánto menos eficiente sería esto en términos de dibujo? Si la velocidad de fotogramas es una preocupación, ¿sería mejor asignar un búfer de potencia de dos dimensiones de 512x512 y solo renderizar en los 64 píxeles superiores, sacrificando la memoria por velocidad?

Respuesta

8

Nunca ha existido la restricción para que ese ancho deba tener la misma altura.

+0

Para desarrollar un poco más sobre esta respuesta: algunas extensiones de textura comprimida * requieren * que las texturas sean iguales de ancho y alto (WebGL aún no las admite), pero eso no es una restricción ni un golpe de rendimiento para OpenGL estándar Comportamiento de WebGL. – Chiguireitor

2

Más específicamente: no se requiere en absoluto que las texturas 2D sean cuadradas; una textura de 512x64 no solo está permitida sino que también debe ser implementada eficientemente por el conductor; por otro lado, los mapas de cubo deben ser cuadrados.

Para texturas 2D, puede usar texturas NPOT si ambos modos de ajuste son CLAMP_TO_EDGE y su filtro de minificación no requiere un mapa de mip. La eficiencia de la textura de NPOT puede variar según su controlador.

Cuestiones relacionadas