13.07.2015 Views

Manual de Apoio 2010

Manual de Apoio 2010

Manual de Apoio 2010

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Figura 8.10: Conjunto <strong>de</strong> imagens MipmappedPor omissão, para utilizar o mipmapping, temos que especificar uma imagem para cada nível <strong>de</strong> mip.Po<strong>de</strong>mos, no entanto, <strong>de</strong>finir qual o valor base e máximos utilizando os parâmetros GL TEXTURE BASE LEVEL eGL TEXTURE MAX LEVEL, como mostra o exemplo:gl. glTexParameteri ( GL2 . GL_TEXTURE_2D , GL2 . GL_TEXTURE_BASE_LEVEL , 0);gl. glTexParameteri ( GL2 . GL_TEXTURE_2D , GL2 . GL_TEXTURE_MAX_LEVEL , 4);Desta forma, serão apenas utilizados os níveis 0, 1, 2 e 4 <strong>de</strong> mipmapping para aplicar à nossa geometria.Po<strong>de</strong>mos ainda especificar os valores mínimos e máximos <strong>de</strong> <strong>de</strong>talhe a ser utilizados alterandos os valores <strong>de</strong>GL TEXTURE MIN LOD e GL TEXTURE MAX LOD.8.5.4 Mipmap FilteringCom o mipmapping ganhamos um novo conjunto <strong>de</strong> modos <strong>de</strong> filtering <strong>de</strong> texturas. Estes novos modos estão<strong>de</strong>scritos na Tabela 8.2.ConstanteGL NEARESTGL LINEARGL NEAREST MIPMAP NEARESTGL NEAREST MIPMAP LINEARGL LINEAR MIPMAP NEARESTGL LINEAR MIPMAP LINEARDescriçãoCalcular com base no “vizinho mais próximo” no nível<strong>de</strong> mip actualCalcular com base na interpolação linear da vizinhançano nível <strong>de</strong> mip actualSeleccionar o nível <strong>de</strong> mip mais próximo e operar filtronearestInterpolação linear entre níveis <strong>de</strong> mip e operar filtronearestSeleccionar o nível <strong>de</strong> mip mais próximo e operar filtragemlinearInterpolação linear entre níveis <strong>de</strong> mip e operar filtragemlinear (alias trilinear mipmapping)Tabela 8.2: Mipmap FilteringO simples facto <strong>de</strong> especificarmos o nível <strong>de</strong> mip na função glTexImage não activa o mipmapping. Se o filtroda textura estiver configurado para GL LINEAR ou GL NEAREST, os níveis <strong>de</strong> mip ≠ 0 são ignorados. Um dosfiltros <strong>de</strong> mipmapping <strong>de</strong>ve ser especificado para que o mipmapping seja usado.As constantes tomam a forma GL MIPMAP , on<strong>de</strong> o FILTRO especifica o tipo <strong>de</strong> filtragemoperado no nível <strong>de</strong> mip seleccionado. O SELECTOR, como o nível <strong>de</strong> mip é seleccionado. Se seleccionarmosum modo <strong>de</strong> filtering que activa o mipmapping sem carregar os níveis <strong>de</strong> mip correspon<strong>de</strong>nte, <strong>de</strong>sactivamos omapping <strong>de</strong> texturas.A escolha do filtro <strong>de</strong>pen<strong>de</strong> um pouco da aplicação e dos requisitos <strong>de</strong> performance. Utilizando o filtroGL NEAREST MIPMAP NEAREST, conseguimos um <strong>de</strong>sempenho melhor e um valor <strong>de</strong> scintillation reduzido, noentanto o aspecto visual final não é o mais agradável. O GL LINEAR MIPMAP NEAREST é utilizado normalmentepara acelerar jogos, mantendo um aspecto visual melhorado, ainda que a seleccção do nível <strong>de</strong> mip seja feita porproximida<strong>de</strong>.A utilização <strong>de</strong> nearest para a seleccção do nível <strong>de</strong> mip, po<strong>de</strong>rá também conduzir ao aparecimento <strong>de</strong>artefactos in<strong>de</strong>sejados. Quando vista <strong>de</strong> uma forma obliqua, é perceptível a transição <strong>de</strong> um nível para o outro<strong>de</strong> mip. A utilização <strong>de</strong> uma selecção LINEAR (GL * MIPMAP LINEAR) permite uma interpolação adicional entreníveis para eliminar esta zona <strong>de</strong> transição, ainda que à custa <strong>de</strong> processamento adicional.8.5.5 Geração <strong>de</strong> níveis <strong>de</strong> MipmappingPo<strong>de</strong>riamos chamar <strong>de</strong> forma reptida a função glTexImage para conseguirmos popular todos os níveis <strong>de</strong> mip.No entanto, isto po<strong>de</strong> ser uma tarefa ardua, sendo que nem sempre o <strong>de</strong>veloper tem acesso a todos tamanhos da87

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!