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 Aparências). 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.