Compartilhar via


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. Os mipmaps geralmente são usados para fornecer diferentes níveis de detalhes ao renderizar. Gerar mipmaps automaticamente no tempo de criação de textura aproveita a 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 do 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 verificar quais tipos de filtro têm suporte, verifique quais caps têm suporte nos membros TextureFilterCaps e/ou CubeTextureFilterCaps do D3DCAPS9.

Suporte ao 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 do 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 verificar se há suporte para geração automática de mipmaps, verifique se D3DCAPS2_CANAUTOGENMIPMAP está definido. Se estiver, chame CheckDeviceFormat com D3DUSAGE_AUTOGENMIPMAP. Se o valor retornado for D3D_OK, os mipmaps deverão ser 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