Directly Mapping Texels to Pixels
9/8/2008
Os aplicativos geralmente precisam aplicar Textures para cálculo em uma cena assim que mapa (n.); mapear (v.) texels diretamente na tela pixels. De exemplo, tomar um aplicativo que precisa exibir texto em uma textura em um objeto em uma cena. Para claramente exibir informações textuais em uma textura, o aplicativo precisa de alguma forma para garantir que a geometria texturizada recebe texels undisrupted pela filtragem textura. Failing isso, a imagem resultante é geralmente borrada, ou de maiúsculas e minúsculas de Point-sampled textura filtragem, poderá causar rugoso bordas.
Porque o pixel Microsoft® Direct3D® Mobile e textura amostragem regras cuidadosamente são definidas para unificar pixel e textura amostragem ao suporte imagem e filtragem textura, obtendo a texels em uma textura para mapa (n.); mapear (v.) diretamente na tela pixels podem ser uma significativa e geralmente frustrating desafio. Resolvendo esse desafio requer um Clear compreensão de como Mobile Direct3D mapeia o ponto flutuante Texturizar coordenadas de um vértice para as coordenadas pixel inteiro usadas pelo conversor de bitmap.
Mobile Direct3D executa a seguinte computações para mapa (n.); mapear (v.) ponto flutuante textura coordenadas para endereços Texel.
Nessas fórmulas, Tx e Ty São as coordenadas Texel saída horizontal e vertical, e u e v As coordenadas horizontal e vertical textura são fornecidas para o vértice. O MX e Meu Elementos representam o número de texels horizontal ou vertical na atual mipmap nível. O restante desta discussão destinos mapeamento horizontal de texels para pixels; manter em mente que mapeamento na vertical é idêntico de maiúsculas e minúsculas horizontal.
Colocar o coordenar de textura limita 0.0 e 1.0 para esses mapas fórmulas coordenar uma textura de 0,0 a meia distância entre o primeiro e último texels de mapa (n.); mapear (v.) uma textura repetidos. A coordenar 1.0 é mapeado metade entre o último Texel do atual iteração de mapa (n.); mapear (v.) a textura e o próximo iteração. Para uma textura repetida que está texels quatro largura, em mipmap nível 0, a seguinte ilustração mostra onde o sistema mapeia as coordenadas 0.0 e 1.0.
Dada uma compreensão deste mapeamento, você pode aplicar uma diferença simples para a Tela-espaço geometria coordenadas para forçar o sistema para mapa (n.); mapear (v.) cada Texel para uma correspondente pixel. De exemplo, para desenhar um Four-sided polígono que mapeia cada Texel a partir de acima Texturizar para um e somente um, pixel sobre a Tela, você deve forçar geometria coordenadas para sobreposição de pixels, efetivamente colocando o centralizar de cada Texel na centralizar de cada pixel. O resultado é de 1-para-1 mapeamento geralmente sought-after por aplicativos.
Para a textura com uma largura 4-Texel para coordenadas de pixel de 0 a 3, polígono desenhar um Four-sided, de duas triângulos, que possui Tela mapa (n.); mapear (v.)-coordenadas espaço de coordenadas 0.5 to 3.5 e textura de 0.0 to 1.0. De exemplo, levar o pixel no coordenada de tela 0.0. Como 0,0 é metade pixel Away from o primeiro vértice, em-0,5, e a largura total é 4.0, o coordenar textura repetidos é 0.125. Escala isso, o tamanho de textura, que é 4, resulta na coordenar 0,5. Subtrair essa diferença 0,5 produz um endereço de textura de 0,0, qual totalmente mapeia para o primeiro Texel na mapa (n.); mapear (v.).
Para resumir, Texturizar sobreposição coordenadas a mapa (n.); mapear (v.) de textura uniformemente nos dois lados. A seguinte ilustração mostra o mapeamento de uma textura que está texels quatro longa.
O sistema normaliza coordenadas pixel da mesma maneira que ele normaliza Texel coordenadas. Portanto, se a sobreposição vértices de pixels para o qual a processar, e se os vértices Usa coordenadas de textura de 0.0 e 1.0, os pixels e texels alinhados. Se os dois são de tamanho semelhante e corretamente alinhados, eles corresponder exatamente, Texel para pixel, conforme o seguinte definir.