Manual de Apoio 2010
Manual de Apoio 2010
Manual de Apoio 2010
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
8.5 Parametrização <strong>de</strong> TexturasO texturing no OpenGL envolve mais do que o simples mapeamento <strong>de</strong> uma textura num dos lados <strong>de</strong> umtriângulo. Um conjunto <strong>de</strong> parâmetros afectam o compotamento e a ren<strong>de</strong>rização das texturas aplicadas. Estesparâmetros po<strong>de</strong>m ser configurados com a função glTexParameter, utilizando uma das variantes:glTexParameterf ( int target , int pname , float param );glTexParameteri ( int target , int pname , int param );glTexParameterfv ( int target , int pname , FloatBuffer params );glTexParameteriv ( int target , int pname , IntBuffer params );O argumento target, especifica o modo da textura para o parâmetro que estamos a configurar (GL TEXTURE 1D,GL TEXTURE 1D, GL TEXTURE 3D). O parâmetro a configurar é especificado em pname e o seu valor é <strong>de</strong>finido noúltimo argumento da função (param/params).8.5.1 Filtering BásicoProque raramente a geometria coinci<strong>de</strong> com a textura em termos <strong>de</strong> pixels (ao contrário dos pixmaps), asimagens <strong>de</strong> textura são normalmente “<strong>de</strong>formadas” para obe<strong>de</strong>cer às coor<strong>de</strong>nadas especificadas para a geometria.A imagem po<strong>de</strong> ser encolhida ou esticada, ou ambos na aplicação à geometria.O processo <strong>de</strong> cálculo dos fragmentos <strong>de</strong> cor, quando uma textura está a ser aplicada, é chamado <strong>de</strong>filtering. Po<strong>de</strong>mos especificar os filtros utilizados na altura <strong>de</strong> encolher (minification) ou <strong>de</strong> esticar (magnification).Os parâmetros para a configuração <strong>de</strong>stes valores são, respectivamente, GL TEXTURE MIN FILTER eGL TEXTURE MAG FILTER. Po<strong>de</strong>mos especificar dois valores para este parâmetro:(a) Filtering com GL NEAREST(b) Filtering com GL LINEARFigura 8.9: Aplicação <strong>de</strong> textura bi-dimensional• GL NEAREST: Simples e rápido. São apuradas as coor<strong>de</strong>nadas <strong>de</strong> cada fragmento para cada texel, a corcorrespon<strong>de</strong>nte a essa coor<strong>de</strong>nada é utilizada como a cor do fragmento da textura. A técnica <strong>de</strong> nearestneighbour é caracterizada pelo aparecimento <strong>de</strong> blocos <strong>de</strong> uma só cor, quando a geometria é aumantada(Figura 8.9(a)). Po<strong>de</strong> ser configurado utilizando:gl. glTexParameteri ( GL2 . GL_TEXTURE_2D ,GL2 . GL_TEXTURE_MAG_FILTER , GL2 . GL_NEAREST );gl. glTexParameteri ( GL2 . GL_TEXTURE_2D ,GL2 . GL_TEXTURE_MIN_FILTER , GL2 . GL_NEAREST );• GL LINEAR: Requer mais processamento, mas o resultado justifica. O custo <strong>de</strong> processamento do linearfiltering é, nos computadores actuais <strong>de</strong>spresível. O valor da cor <strong>de</strong> cada fragmento da textura é conseguidopela interpolação linear (média pon<strong>de</strong>rada) dos texels que ro<strong>de</strong>iam a sua coor<strong>de</strong>nada. Po<strong>de</strong> ser configuradoutilizando:gl. glTexParameteri ( GL2 . GL_TEXTURE_2D ,GL2 . GL_TEXTURE_MAG_FILTER , GL2 . GL_LINEAR );gl. glTexParameteri ( GL2 . GL_TEXTURE_2D ,GL2 . GL_TEXTURE_MIN_FILTER , GL2 . GL_LINEAR );85