Geração automática de Mipmaps (Direct3D 9)

Agora você pode criar automaticamente um mipmap que é uma série de texturas, cada uma filtrada para uma resolução diferente. Mipmaps são comumente usados para fornecer diferentes níveis de detalhes durante a renderização. A geração automática de mipmaps no momento da criação da textura tira proveito da filtragem de hardware porque o mipmap reside na memória de vídeo.

Para gerar um mipmap automaticamente, defina um novo D3DUSAGE_AUTOGENMIPMAP de uso antes de chamar CreateTexture. A geração de subnível desse ponto em diante é completamente transparente para o aplicativo. Somente o nível de textura superior é acessível ao aplicativo; os subnível de textura não são acessíveis, pois serão criados somente quando necessário pelo driver. Nos casos em que a geração de subnível pode levar muito tempo, use GenerateMipSubLevels para sugerir ao driver que ele deve gerar subnível em um momento apropriado para o aplicativo.

Filtragem de Mipmap

SetAutoGenFilterType controla a qualidade da filtragem durante a geração automática. A alteração do tipo de filtro suja os subnível de mipmap e faz com que eles sejam regenerados. Use GetAutoGenFilterType para obter o tipo de filtro atual. O tipo de filtro padrão é D3DTEXF_LINEAR. Se o driver não der suporte a um filtro linear, o tipo de filtro será definido como D3DTEXF_POINT.

Esses métodos não terão efeito se a textura não for criada com D3DUSAGE_AUTOGENMIPMAP E nenhuma falha for retornada. Todos os tipos de filtro compatíveis com o driver para filtragem de textura regular têm suporte para gerados automaticamente, exceto D3DTEXF_NONE. Para cada tipo de recurso, os drivers devem dar suporte a todos os tipos de filtro relatados nas tampas de filtro de textura, CubeTexture e volumetexture correspondentes.

Para marcar quais tipos de filtro têm suporte, marcar para ver quais caps têm suporte dos membros TextureFilterCaps e/ou CubeTextureFilterCaps do D3DCAPS9.

Suporte a Mipmap

D3DUSAGE_AUTOGENMIPMAP é apenas uma dica e especificar isso durante a criação da textura ou ao chamar CheckDeviceFormat não causaria um erro em nenhum dos tipos de DDI (interface de driver do dispositivo).

Chamar UpdateTexture é ilegal quando a origem é um mipmap gerado automaticamente, mas o destino não é. A origem pode ser um mipmap não gerado automaticamente e o destino pode ser um mipmap gerado automaticamente. Nesse caso, somente o nível de correspondência mais alto é atualizado. Todos os outros subnível de origem são ignorados. Da mesma forma, quando a origem e o destino são gerados automaticamente, somente o nível de correspondência mais alto é atualizado. Os subnível da origem são ignorados e os subnível de destino são regenerados.

Para marcar para obter suporte para a geração automática de mipmaps, marcar para ver que D3DCAPS2_CANAUTOGENMIPMAP está definido. Se estiver, chame CheckDeviceFormat com D3DUSAGE_AUTOGENMIPMAP. Se o valor retornado for D3D_OK, os mipmaps serão gerados automaticamente. Se o valor retornado for D3DOK_NOAUTOGEN, isso significa que a chamada de criação terá êxito, mas não haverá mipmaps gerados.

Texturas Direct3D