El hardware de gráficos está optimizado para operaciones matriciales, operaciones de fragmentos y operaciones vectoriales. En pocas palabras, las matrices cuadradas son más fáciles de manejar, ya que los cálculos se pueden hacer en bloques (llamados fragmentos), el hardware está optimizado para operaciones de bloque, por lo que hay cosas como búferes de archivos, la memoria RAM no se bloquea en el disco hasta que se bloquea. ha sido poblado Lo mismo se aplica a la memoria gráfica.
El búfer de cuadro está compuesto por fragmentos que son cuadrados. Por ejemplo, en una pantalla con una resolución de 800x600 y un espacio de color RGB (0-255) hay 800x600 puntos con 3 bytes cada canal, hay un total de 3x800x600 = 1,440,000 bytes para direccionar en el búfer de cuadros. Eso significa que hay 1.875 fragmentos direccionables que son 256x256x3 bytes. Debido a que los datos de textura son cuadrados, hace que sea mucho más fácil mapear desde la matriz GRAM a la matriz del búfer de pantalla usando la escala bicúbica, donde como si no fuera cuadrado, el sesgo para el lado más largo tomaría más tiempo para calcular cuándo era necesario ser escalado
Muchas API de gráficos aceptarán datos de textura no cuadrados, porque aceptan coordenadas de mapeo UV como datos de coma flotante, sin embargo, una vez que se envían a la GPU, se agrega relleno a los datos de textura, porque las proporciones reales de la imagen no cambian el mapeo parece no verse afectado, sin embargo, se agrega relleno a los datos de textura, porque a la GPU le gusta abordarlo como un cuadrado perfecto.
Entonces, si se usa una imagen de 100x1024, y se usa una imagen de 1024x1024, lo que significa que se desperdician 946,176 bytes. Aún más si se va a realizar la composición, ya que será necesario agregar un canal alfa para indicar que los datos de relleno no deberían afectar la textura compuesta.