Share via


Generación automática de mapas Mip (Direct3D 9)

Ahora puede crear automáticamente un mapa MIP, que es una serie de texturas, cada una filtrada por una resolución diferente. Los mapas MIP se usan normalmente para proporcionar distintos niveles de detalle al representar. La generación automática de mapas MIP en el momento de la creación de texturas aprovecha el filtrado de hardware porque el mapa mip reside en la memoria de vídeo.

Para generar un mapa mip automáticamente, establezca una nueva D3DUSAGE_AUTOGENMIPMAP de uso antes de llamar a CreateTexture. La generación de subniveles a partir de este punto en es completamente transparente para la aplicación. Solo se puede acceder al nivel de textura superior a la aplicación; Los subniveles de textura no son accesibles, ya que solo se crearán cuando sea necesario por el controlador. En los casos en los que la generación de subnivel puede tardar mucho tiempo, use GenerateMipSubLevels para sugerir al controlador que debe generar subniveles en un momento adecuado para la aplicación.

Filtrado de mapas Mip

SetAutoGenFilterType controla la calidad de filtrado durante la generación automática. Al cambiar el tipo de filtro se desucian los subveles mipmap y se vuelven a generar. Use GetAutoGenFilterType para obtener el tipo de filtro actual. El tipo de filtro predeterminado es D3DTEXF_LINEAR. Si el controlador no admite un filtro lineal, el tipo de filtro se establecerá en D3DTEXF_POINT.

Estos métodos no tienen ningún efecto si la textura no se crea con D3DUSAGE_AUTOGENMIPMAP Y no se devuelve ningún error. Todos los tipos de filtro admitidos por el controlador para el filtrado de texturas normales se admiten para la generación automática, excepto D3DTEXF_NONE. Para cada tipo de recurso, los controladores deben admitir todos los tipos de filtro notificados en las texturas correspondientes, CubeTexture y los límites de filtro de volumetexture.

Para comprobar qué tipos de filtro se admiten, compruebe qué límites son compatibles con los miembros TextureFilterCaps o CubeTextureFilterCaps de D3DCAPS9.

Compatibilidad con mapas MIP

D3DUSAGE_AUTOGENMIPMAP es solo una sugerencia y especificar esto durante la creación de texturas o al llamar a CheckDeviceFormat no provocaría un error en ninguno de los tipos de interfaz de controlador de dispositivo (DDI).

Llamar a UpdateTexture no es válido cuando el origen es un mapa mip generado automáticamente, pero el destino no lo es. El origen puede ser un mapa MIP generado no automáticamente y el destino puede ser un mapa MIP generado automáticamente. En este caso, solo se actualiza el nivel de coincidencia superior. Se omiten todos los demás subniveles de origen. Del mismo modo, cuando se generan automáticamente el origen y el destino, solo se actualiza el nivel de coincidencia más superior. Los subniveles del origen se omiten y se vuelven a generar los subniveles de destino.

Para comprobar la compatibilidad con la generación automática de mapas MIP, compruebe que se ha establecido D3DCAPS2_CANAUTOGENMIPMAP . Si es así, llame a CheckDeviceFormat con D3DUSAGE_AUTOGENMIPMAP. Si el valor devuelto es D3D_OK, se garantiza que los mapas MIP se generan automáticamente. Si el valor devuelto es D3DOK_NOAUTOGEN, esto significa que la llamada de creación se realizará correctamente, pero no se generarán mapas MIP.

Texturas de Direct3D