Filtros y descarga dinámica de mapas de bits

Evite los filtros, incluyendo los procesados mediante Pixel Bender.

Intente reducir el uso de efectos como filtros, incluyendo los filtros procesados en dispositivos móviles mediante Pixel Bender. Cuando se aplica un filtro a un objeto de visualización, el motor de ejecución crea dos mapas de bits en memoria. Estos mapas de bits son cada uno del tamaño del objeto de visualización. El primero se crea como una versión rasterizada del objeto de visualización que, en cambio, se utiliza para producir un segundo mapa de bits con el filtro aplicado:

Ver gráfico a tamaño completo
Dos mapas de bits en memoria cuando se aplica el filtro

Al modificar una de las propiedades de un filtro, ambos mapas de bits se actualizan en memoria para crear el mapa de bits resultante. Este proceso implica parte de procesamiento de la CPU y los dos mapas de bits pueden utilizar una cantidad significativa de memoria.

En Flash Player 10.1 y AIR 2.5 se presenta un nuevo comportamiento de filtrado en todas las plataformas. Si el filtro no se modifica en 30 segundos, o bien, si se oculta o está fuera de pantalla, la memoria que utiliza el mapa de bits sin filtro se libera.

Con esta función se ahorra la mitad de memoria utilizada por un filtro en todas las plataformas. Por ejemplo, pongamos como ejemplo un objeto de texto con un filtro de desenfoque aplicado. En este caso, el texto se utiliza para simple decoración y no se modifica. Transcurridos 30 segundos, se libera el mapa de bits sin filtro en memoria. Se obtiene el mismo resultado si el texto se oculta durante 30 segundos o está fuera de pantalla. Si se modifica una de las propiedades del filtro, el mapa de bits sin filtro en memoria se vuelve a crear. Esta función se denomina descarga dinámica de mapas de bits. A pesar de estas optimizaciones, se debe ser prudente con los filtros, ya que aún requieren un amplio procesamiento de CPU o GPU cuando se modifican.

Como práctica más recomendada, utilice mapas de bits creados mediante una herramienta de edición como, por ejemplo, Adobe® Photoshop®, para emular los filtros cuando sea posible. Evite el uso de mapas de bits dinámicos creados en tiempo de ejecución en ActionScript. La utilización de mapas de bits creados externamente, ayuda al motor de ejecución a reducir la carga de CPU o GPU, especialmente cuando las propiedades del filtro no cambian con el tiempo. Si es posible, cree todos los efectos que necesite en un mapa de bits en una herramienta de edición. Posteriormente, puede mostrar el mapa de bits en el motor de ejecución sin realizar ninguna representación en el mismo, lo que puede resultar mucho más rápido.