Mapeamento de textura

A textura é geralmente uma imagem 2D, a qual é aplicada a um objeto 2D ou 3D com a finalidade de aumentar o realismo visual.
O Mapeamento de textura se refere ao processo de como essa aplicação é feito, de como mapear as coordenas da imagem para as coordenadas do objeto

Table of Contents

O mapeamento de textura pode ser dado em coordenadas de ponto flutuante ou em coordenadas inteiras. Ele envolve em dar a cada vértice/pixel uma coordenada de textura, o qual atriburá um pixel da imagem de textura (texel) aquele vértice/textura.

Um exemplo de um objeto com e sem mapeamento de textura pode ser visto na figura abaixo. O objeto em questão, um tanque, é representado na figura 1 sem nenhum textura, apenas com cores distintadas pintadas em cada parte do tanque. Já a figura 2 aplica texturas nestas partes. Nota-se que a figura 2 parece muito mais real do que a figura 1.

Texturedm1a2.png
Fonte: Wikipedia - http://en.wikipedia.org/wiki/Texture_mapping

Segue abaixo uma figura de um quadrado em que é aplicado um mapeamento de textura

flickr:5874148163

O código fonte deste exemplo pode ser baixado | aqui.
O mapeamento de textura do exemplo dado é facilitado pelo uso da biblioteca DevIL. Segue abaixo a função que carrega a textura:

void loadTexture(){
    ilInit();
    iluInit();
    ilutInit();
    ilutRenderer( ILUT_OPENGL );
 
    ILuint image;
 
    ilGenImages( 1, &image );
    ilBindImage(image);
 
    // corrigir o caminho da imagem
    // prvavelmente vai ter de ser tirado o ../
    if( !ilLoadImage( "../lighthouse.jpg" )){
        puts("nao foi possivel carregar a imagem");
        exit(-1);
    }
 
    ilutGLBindTexImage(0);
 
    // substitui a cor de origem ao invés de se misturar com ela
    glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
}

Links

http://dispatchevent.org/roger/cylinder-mapping/

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.