Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Quando o Direct3D renderiza uma primitiva, ele mapeia a primitiva 3D em uma tela 2D. Se a primitiva tiver uma textura, o Direct3D deverá usar essa textura para produzir uma cor para cada pixel na imagem renderizada 2D da primitiva. Para cada pixel na imagem apresentada no ecrã do primitivo, deve-se obter um valor de cor da textura. Este processo é chamado de filtragem de textura.
Quando uma operação de filtro de textura é executada, a textura que está sendo usada normalmente também está sendo ampliada ou minificada. Em outras palavras, ele está sendo mapeado em uma imagem primitiva que é maior ou menor do que ela mesma. A ampliação de uma textura pode resultar em muitos pixels sendo mapeados para um texel. O resultado pode ser uma aparência volumosa. A minificação de uma textura geralmente significa que um único pixel é mapeado para muitos texels. A imagem resultante pode ser desfocada ou com aliasing. Para resolver esses problemas, alguma mistura das cores texel deve ser realizada para chegar a uma cor para o pixel.
O Direct3D simplifica o complexo processo de filtragem de textura. Ele fornece três tipos de filtragem de textura - filtragem linear, filtragem anisotrópica e filtragem mipmap. Se você não selecionar nenhuma filtragem de textura, o Direct3D usará uma técnica chamada amostragem de ponto mais próximo.
Cada tipo de filtragem de textura tem vantagens e desvantagens. Por exemplo, a filtragem linear de textura pode produzir bordas irregulares ou uma aparência volumosa na imagem final. No entanto, é um método de filtragem de textura com baixo custo computacional. A filtragem com mipmaps geralmente produz os melhores resultados, especialmente quando combinada com filtragem anisotrópica. No entanto, requer a maior parte da memória das técnicas suportadas pelo Direct3D.
Os aplicativos que utilizam ponteiros de interface de textura devem definir o método atual de filtragem de textura chamando o método IDirect3DDevice9::SetSamplerState. Defina o valor do primeiro parâmetro para o número de índice inteiro (0-7) da textura para a qual você está selecionando um método de filtragem de textura. Passe D3DSAMP_MAGFILTER, D3DSAMP_MINFILTER ou D3DSAMP_MIPFILTER para o segundo parâmetro para definir o filtro de ampliação, minificação ou mipmapping. Passe um membro do tipo enumerado D3DTEXTUREFILTERTYPE como o valor no terceiro parâmetro.
Esta secção apresenta os métodos de filtragem de textura suportados pelo Direct3D. Está organizado nos seguintes tópicos.
- Nearest-Point Amostragem (Direct3D 9)
- Filtragem de textura linear (Direct3D 9)
- Filtragem de textura bilinear (Direct3D 9)
- Filtragem de textura anisotrópica (Direct3D 9)
- Filtragem de textura com Mipmaps (Direct3D 9)
Observação
Embora os estados de renderização de filtragem de textura presentes no tipo enumerado D3DRENDERSTATETYPE sejam substituídos por estados de estágio de textura, o IDirect3DDevice9::SetRenderState, em oposição à versão IDirect3DDevice2, não falhará se você tentar usá-los. Em vez disso, o sistema mapeia os efeitos desses estados de renderização para o primeiro estágio na cascata de multitextura, o estágio 0. Os aplicativos não devem misturar os estados de renderização herdados com seus estados de estágio de textura correspondentes, pois resultados imprevisíveis podem ocorrer.
Tópicos relacionados