Compartir a través de


Exportación de formatos de textura enriquecidos mediante la canalización de contenido de imágenes en Visual Studio

En este artículo se describe cómo usar la canalización de contenido de imágenes para exportar texturas, como las que contienen mapas MIP o alfas premultiplicados, o incluso las que se pueden usar con aplicaciones de Direct2D o JavaScript.

Exportar una textura que contiene mapas MIP

La canalización de contenido de la imagen puede generar mapas MIP a partir de una imagen de origen como parte de la fase de compilación del proyecto. Para lograr determinados efectos, a veces hay que especificar manualmente el contenido de la imagen de cada nivel de MIP. Cuando no es necesario especificar manualmente el contenido de la imagen de cada nivel de MIP, generar asignaciones MIP en tiempo de compilación garantiza que el contenido de la asignación MIP se mantiene siempre sincronizado. También elimina el costo de rendimiento derivado de generar asignaciones MIP en tiempo de ejecución.

En este artículo se describe:

  • Configurar la imagen de origen para que se procese mediante la canalización de contenido de la imagen.

  • Configurar la canalización de contenido de la imagen para generar mapas MIP.

Exportar asignaciones MIP

Los mapas MIP proporcionan el nivel de detalle del espacio de pantalla automático para superficies con textura en un juego o aplicación 3D. Mejora el rendimiento de la representación de un juego o una aplicación calculando previamente versiones de una textura con reducción de muestreo. Calcular previamente versiones con reducción de muestreo significa que no es necesario reducir la frecuencia de muestreo cada vez que se muestrea.

Para exportar una textura que tiene mapas MIP

  1. Comience con una textura básica. Cargue un archivo de imagen o cree uno nuevo. Para admitir mapas MIP, especifique una textura con un ancho y un alto que sean ambos la misma potencia de dos de tamaño, por ejemplo, 64x64, 256x256 o 512x512.

  2. Configure el archivo de textura que acaba de crear para que sea procesado por la canalización de contenido de imagen. En el Explorador de soluciones, abra el menú contextual del archivo de textura que ha creado y seleccione Propiedades. En la página Propiedades de configuración>General, establezca la propiedad Tipo de elemento en Canalización de contenido de la imagen. Asegúrese de que la propiedad Contenido esté establecida en y Excluir de la compilación esté establecido en No. Seleccione Aplicar.

    Aparece la página de propiedades de configuración de Canalización de contenido de la imagen.

  3. Configure la canalización de contenido de la imagen para generar mapas MIP. En la página Propiedades de configuración>Canalización de contenido de la imagen>General, establezca la propiedad Generar Mips en Sí (/generatemips) .

  4. Seleccione Aceptar.

Al compilar el proyecto, la canalización de contenido de la imagen convierte la imagen de origen del formato de trabajo al formato de salida especificado, incluidos los niveles de MIP. El resultado se copia en el directorio de salida del proyecto.

Exportar una textura que tiene valores alfa previamente multiplicados

La canalización de contenido de la imagen puede generar texturas de alfa premultiplicado a partir de una imagen de origen. Pueden ser más fáciles de usar y más sólidas que las texturas que no contienen alfas premultiplicados.

Este documento muestra estas actividades:

  • Configurar la imagen de origen para que se procese mediante la canalización de contenido de la imagen.

  • Configurar la canalización de contenido de la imagen para generar valores alfa premultiplicados.

Alfa premultiplicado

Alfa premultiplicado proporciona varias ventajas en comparación con alfa convencional y no premultiplicado, porque representa mejor la interacción real de la luz con material físico separando la contribución de color de la textura (el color que agrega a la escena) de la translucidez (la cantidad de color subyacente que permite). Algunas de las ventajas de usar alfa premultiplicado son:

  • La combinación con alfa premultiplicado es una operación asociativa; el resultado de combinar varias texturas translúcidas varias es el mismo, independientemente del orden en que se combinan las texturas.

  • Debido a la naturaleza asociativa de la combinación con alfa premultiplicado, la representación de varias pasadas de objetos translúcidos se simplifica.

  • Mediante el uso de alfa premultiplicado, se puede lograr simultáneamente la combinación aditiva pura (estableciendo alfa en cero) y la combinación lineal interpolada. Por ejemplo, en un sistema de partículas, una partícula de fuego aditivamente mezclada puede convertirse en una partícula de humo translúcido que se mezcla mediante el uso de interpolación lineal. Sin alfa multiplicada previamente, tendría que dibujar las partículas de activación con independencia de las partículas de humo, y modificar el estado de presentación entre las llamadas de dibujo.

  • Las texturas que usan alfa premultiplicado se comprimen con mayor calidad que aquellas que no lo usan y no presentan el efecto de bordes descoloridos (o de "halo") que puede producirse cuando se mezclan texturas que no usan alfa premultiplicado.

Para crear una textura que usa alfa multiplicado previamente

  1. Comience con una textura básica. Cargue un archivo de imagen o cree uno nuevo.

  2. Configure el archivo de textura para que sea procesado por la canalización de contenido de imagen. En el Explorador de soluciones, abra el menú contextual del archivo de textura y seleccione Propiedades. En la página Propiedades de configuración>General, establezca la propiedad Tipo de elemento en Canalización de contenido de la imagen. Asegúrese de que la propiedad Contenido esté establecida en y Excluir de la compilación esté establecido en No, y, después, seleccione el botón Aplicar. Aparece la página de propiedades de configuración de Canalización de contenido de la imagen.

  3. Configure la canalización de contenido de la imagen para generar valores alfa premultiplicados. En Propiedades de configuración>Canalización de contenido de la imagen> en la página General, establezca la propiedad Convertir en formato alfa premultiplicado en Sí (/generatepremultipliedalpha) .

  4. Elija el botón Aceptar .

    Al compilar el proyecto, la canalización de contenido de la imagen convierte la imagen de origen del formato de trabajo al formato de salida especificado (esto incluye la conversión de la imagen del formato de alfa multiplicado previamente) y el resultado se copia en el directorio de resultados del proyecto.

Exportación de una textura para usarla con aplicaciones de Direct2D o JavaScript

La canalización de contenido de la imagen puede generar texturas compatibles con las convenciones de representación internas de Direct2D. Las texturas de esta clase son adecuadas para su uso en aplicaciones que usan Direct2D y en aplicaciones para UWP creadas mediante JavaScript.

Este documento muestra estas actividades:

  • Configurar la imagen de origen para que se procese mediante la canalización de contenido de la imagen.

  • Configurar la canalización de contenido de la imagen para generar una textura que se pueda usar en una aplicación de Direct2D o JavaScript.

    • Generar un archivo .dds comprimido en bloques.

    • Generar valores alfa premultiplicados.

    • Deshabilitar la generación de mapa MIP.

Representación de convenciones en Direct2D

Las texturas que se usan en el contexto de Direct2D deben cumplir estas convenciones de representación internas de Direct2D:

  • Direct2D implementa transparencia y translucidez mediante valores alfa premultiplicados. Las texturas usadas con Direct2D deben contener alfa premultiplicado, aunque la textura no use transparencia o translucidez.

  • La textura se debe proporcionar en formato .dds, usando uno de estos formatos de compresión de bloques:

    • Compresión BC1_UNORM

    • Compresión BC2_UNORM

    • Compresión BC3_UNORM

  • No se admiten mapas MIP.

Para crear una textura compatible con las convenciones de representación de Direct2D

  1. Comience con una textura básica. Cargue una imagen o cree una nueva. Para admitir la compresión de bloques en formato de .dds, especifique una textura con un ancho y un alto que sean múltiplos de cuatro de tamaño, por ejemplo, 100x100, 128x128 o 256x192. Dado que no se admiten mapas MIP, la textura no tiene que ser cuadrada ni su tamaño tiene que ser una potencia de base dos.

  2. Configure el archivo de textura para que sea procesado por la canalización de contenido de imagen. En el Explorador de soluciones, abra el menú contextual del archivo de textura que ha creado y seleccione Propiedades. En la página Propiedades de configuración>General, establezca la propiedad Tipo de elemento en Canalización de contenido de la imagen. Asegúrese de que la propiedad Contenido esté establecida en y Excluir de la compilación esté establecido en No, y, después, seleccione el botón Aplicar. Aparece la página de propiedades de configuración de Canalización de contenido de la imagen.

  3. Establezca el formato de salida en uno de los formatos comprimidos en bloques. En Propiedades de configuración>Canalización de contenido de la imagen>, en la página General, establezca la propiedad Compress en Compresión BC3_UNORM (/compress: BC3_UNORM) . Podría elegir cualquiera de los otros formatos BC1, BC2 o BC3, según sus requisitos. Direct2D no admite actualmente las texturas BC4, BC5, BC6 o BC7. Para obtener más información sobre los diferentes formatos BC, vea la página web sobre la compresión de bloques (Direct3D 10).

    Nota

    El formato de compresión especificado determina el formato del archivo generado por la canalización de contenido de la imagen. Esto es diferente de la propiedad Formato de la imagen de origen en el Editor de imágenes, que determina el formato del archivo de imagen de origen tal como está almacenado en disco, es decir, el formato de trabajo. Normalmente, no quiere un formato de trabajo comprimido.

  4. Configure la canalización de contenido de imagen para producir una salida que use alfa premultiplicado. En Propiedades de configuración>Canalización de contenido de la imagen> en la página General, establezca la propiedad Convertir en formato alfa premultiplicado en Sí (/generatepremultipliedalpha) .

  5. Configure la canalización de contenido de la imagen para que no genere mapas MIP. En la página Propiedades de configuración>Canalización de contenido de la imagen>General, establezca la propiedad Generar Mips en No.

  6. Elija el botón Aceptar .

    Al compilar el proyecto, la canalización de contenido de la imagen convierte la imagen de origen del formato de trabajo al formato de salida especificado (la conversión incluye la generación de alfa multiplicado previamente) y el resultado se copia en el directorio de resultados del proyecto.

Consulte Trabajar con texturas e imágenes para obtener más información sobre cómo usar el editor de imágenes de Visual Studio para crear o modificar texturas e imágenes que se usan en el desarrollo de aplicaciones de DirectX.