Disposição da textura
A disposição de textura altera a maneira básica como o Direct3D rasteriza polígonos texturizados usando as coordenadas de textura especificadas para cada vértice. Ao rasterizar um polígono, o sistema interpola entre as coordenadas de textura em cada um dos vértices do polígono para determinar os texels que devem ser usados para cada pixel do polígono. Normalmente, o sistema trata a textura como um plano 2D, interpolando novos texels tomando a rota mais curta do ponto A dentro de uma textura para o ponto B. Se o ponto A representa a posição u, v (0,8, 0,1) e o ponto B está em (0,1,0,1), a linha de interpolação se parece com o diagrama a seguir.
Observe que a distância mais curta entre A e B nesta ilustração passa aproximadamente pelo meio da textura. Habilitar o encapsulamento de coordenadas u-texture ou v-texture altera a forma como o Direct3D percebe a rota mais curta entre as coordenadas de textura na direção u e na direção v. Por definição, a quebra automática de textura faz com que o rasterizador siga a rota mais curta entre os conjuntos de coordenadas de textura, supondo que 0,0 e 1,0 sejam coincidentes. A última parte é a parte complicada: você pode imaginar que habilitar o encapsulamento de textura em uma direção faz com que o sistema trate uma textura como se estivesse enrolada em um cilindro. Por exemplo, considere o seguinte diagrama:
A ilustração anterior mostra como o encapsulamento na direção u afeta a forma como o sistema interpola as coordenadas de textura. Usando os mesmos pontos do exemplo para texturas normais ou não encapsuladas, você pode ver que a rota mais curta entre os pontos A e B não está mais no meio da textura; agora está do outro lado da fronteira onde 0.0 e 1.0 existem juntos. O envolvimento na direção v é semelhante, exceto que envolve a textura em torno de um cilindro que está deitado de lado. Envolver a direção u e a direção v é mais complexo. Nessa situação, você pode imaginar a textura como um toro ou rosquinha.
A aplicação prática mais comum para quebra de textura é executar o mapeamento de ambiente. Normalmente, um objeto texturizado com um mapa de ambiente parece muito reflexivo, mostrando uma imagem espelhada dos arredores do objeto na cena. Para esta discussão, imagine uma sala com quatro paredes, cada uma pintada com uma letra R, G, B, Y e as cores correspondentes: vermelho, verde, azul e amarelo. O mapa de ambiente para uma sala tão simples pode ser semelhante à ilustração a seguir.
Imagine que o teto da sala é sustentado por um pilar perfeitamente reflexivo, de quatro lados. Mapear a textura do mapa do ambiente para o pilar é simples; Fazer com que o pilar pareça estar refletindo as letras e cores não é tão fácil. O diagrama a seguir mostra uma estrutura de arame do pilar com as coordenadas de textura aplicáveis listadas perto dos vértices superiores. A costura onde o embrulho cruzará as bordas da textura é mostrada com uma linha pontilhada.
Com a quebra automática habilitada na direção u, o pilar texturizado mostra as cores e os símbolos do mapa de ambiente adequadamente e, na costura na frente da textura, o rasterizador escolhe corretamente a rota mais curta entre as coordenadas de textura, supondo que as coordenadas u 0,0 e 1,0 compartilhem o mesmo local. O pilar texturizado se parece com a ilustração a seguir.
Se a quebra automática de textura não estiver habilitada, o rasterizador não interpolará na direção necessária para gerar uma imagem refletida e crível. Em vez disso, a área na frente do pilar contém uma versão compactada horizontalmente dos texels entre as coordenadas u 0,175 e 0,875, à medida que passam pelo centro da textura. O efeito wrap está arruinado.
Não confunda a quebra automática de textura com os modos de endereçamento de textura com nomes semelhantes. O encapsulamento de textura é executado antes do endereçamento de textura. Certifique-se de que os dados de quebra automática de textura não contenham nenhuma coordenada de textura fora do intervalo de [0,0, 1,0], pois isso produzirá resultados indefinidos. Para obter mais informações sobre endereçamento de textura, consulte Modos de endereçamento de textura.
Quebra automática do mapa de deslocamento
Os mapas de deslocamento são interpolados pelo mecanismo de mosaico. Como o modo de encapsulamento não pode ser especificado para o mecanismo de mosaico, o encapsulamento de textura não pode ser executado com mapas de deslocamento. Um aplicativo é capaz de usar um conjunto de vértices que força a interpolação a ser encapsulada em qualquer direção. O aplicativo também pode especificar a interpolação a ser feita como uma interpolação linear simples.
Tópicos relacionados