Previous: Aparencias, Up: Convencoes

#### 4.1.11 Mapeamento de Textura

Alguns programas que trabalham sem contato direto com o usuário suportam objetos mapeados em textura, atualmente apenas o OpenGL e a interface RenderMan no momento dessa escrita. Existe também alguns recursos com a interface RMan quando em uso um canal alfa na imagem de textura. Aqueles programas que não trabalham diretamente com o usuário cujo suporte a textura não existe silenciosamente ignoram tentativas de uso de mapeamento de textura. Uma textura é especificada como parte de uma estrutura de aparência (Veja Aparencias). Resumidamente, se fornece uma imagem de textura (Veja também Objetos de imagem), a qual é considerada contida em um quadrado no espaço parametrizado `(s,t)` no intervalo 0 <= s <= 1, 0 <= t <= 1. Então se fornece uma primitiva geométrica, com cada vértice acompanhado com as coordenadas de textura `(s,t)`. Se a texturização estiver habilitada, a porção apropriada da imagem de textura é colada sobre cada face do objeto texturizado.

Não existe (atualmente) nenhuma provisão para herança de parte de uma estrutura de textura; se a palavra chave `texture` é mencionada em uma aparência, essa mensão suplanta qualquer outra especificação de textura.

O atributo de aparência `texturing` controla se texturas são usadas; não existe perda de performace tendo campos "texture { ... }" definidos quando a utilização de texturas está desabilitada.

Os campos de textura disponíveis são:

         clamp   none  -ou-  s  -ou-  t  -ou-  st
           Determina o significado de coordenadas de textura fora do intervalo
           0..1. Com clamp none, o padrão, coordenadas são
           interpretadas modulo 1, então (s,t) = (1.25,0), (.25,0), e (-.75,0)
           referem-se todos ao mesmo ponto no espaço das texturas.  Com
           clamp s ou clamp t ou clamp st, individualmente
           ou ambos de s-coordenadas ou t-coordenadas menor que 0 ou
           maior que 1 são remapeadas para 1 ou para 0, respectivamente.

         image { <especificação de imagem> (Objetos de imagem) }
           Especifica a atual imagem de textura. Imagens de textura podem ter
           1, 2, 3 ou 4 canais:
             1 canal:  luminância
             2 canais: luminância e alfa (opcidade:0 transparente, 1 opaco)
             3 canais: dados RGB
             4 canais: dados RGBA

           Veja Objetos de imagem, para a definição atual de
           objetos de imagem. O canal usado por alfa é somente interpretado
           como máscara: onde a mácara é zero, pixels são simplesmente
           omitidos. Uma exceção é o caso onde apply
           é igual a modulate e a translucência está habilitada:
           nesse caso o valor de alfa resultante é o resultado da
           multiplicação da cor da superfície pelo valor de alfa do
           canal alfa da textura.

         file      nomearquivo
         alphafile nomearquivo
           Isso é considerado obsoleto, e somente mantido por compatibilidade,
           o moderno caminho é usar o novo objeto imagem OOGL. Veja
           Objetos de imagem.  O material documentado aqui pode
           ainda funcionar apesar disso

           Especifica arquivos de imagem contendo a textura.

           A palavra chave file especifica um arquivo com informações de cor
           ou de brilho; alphafile se presente, especifica uma máscara de
           transparência ("alpha"); onde a máscara for zero, pixels simplesmente
           são omitidos.  Muitos formatos de arquivo de imagem estão
           disponíveis; o tipo de arquivo deve ser indicado pelos últmos poucos
           caracteres do nome do arquivo:
             .ppm ou .ppm.Z ou .ppm.gz  24-bit 3-color imagem no formato PPM
             .pgm ou .pgm.Z ou .pgm.gz  8-bit tons de cinza imagem no formato PGM
             .sgi ou .sgi.Z ou .sgi.gz  8-bit, 24-bit, ou 32-bit imagem SGI
             .tiff                      8-bit ou 24-bit imagem TIFF
             .gif                       imagem GIF
           Para esse recurso trabalhar, alguns programas devem estar disponíveis
           no caminho de busca do Geomview:
             zcat  para arquivo .Z
             gzip  para arquivos .gz
             tifftopnm para arquivos .tiff
             giftoppm para arquivos .gif

           Se uma imagem alphafile for fornecida, essa imagem deve ser do mesmo
           tamanho que a imagem file.

           Objetos imagem fornecem um caminho mais flexível para especificar dados de
           textura. Veja Objetos de imagem.

         apply   modulate  -ou-  blend  -ou-  decal
           Indica como a imagem de textura é aplicada à superfície.
           Aqui a "surface color" (cor da superfície) significa a cor que a
           superfície pode ter   na ausência de mapeamento de textura.

           Com modulate, o padrão, a cor de textura (ou iluminação,
           se texturizado por meio de uma imagem de escala de cinza) é multiplicada
           pela cor da superfície.

           Com blend, textura harmoniza-se entre cor de fundo (background)
           e a cor da superfície.  O parâmetro file deve especificar uma
           imagem de escala de cinza.  Onde a imagem de textura é 0, a cor da
           superfície permanece inalterada; onde for 1, a superfície é
           colorida na cor dada por background; e cor é interpolada para
           valores imediatos.

           Com decal, o parâmetro file deve especificar uma
           imagem de tres cores.  Se um parâmetro alphafile estiver presente,
           seus valores interpolam-se entre a cor da superfície (onde alpha=0)
           e a cor de textura (onde alpha=1).  Iluminação não afeta a
           cor de textura no modo decal; efetivamente a textura é
           tonalidademente constante.

         background  R G B A
           Especifica uma cor com 4 componentes, com números R, G, B, e A em
           ponto flutuante normalmente no intervalo 0..1, usados quando
           apply blend for selecionado.

         transform matriz-de-transformação
           Espera uma lista de 16 números, ou um dos outros caminhos de
           representar uma transformação (: nomecabeçalho ou
           < nomearquivo). A matriz 4x4 de transformação é
           aplicada a coordenadas de textura, no sentido de um vetor linha de
           4 componentes (s,t,0,1) multiplicado à esquerda pela matriz, para
           produzir novas coordenadas (s',t') às quais atualmente indexam a
           textura.