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.

imagem da textura. A biblioteca GLU fornece um conjunto <strong>de</strong> funções que permitem convenientemente gerar osvários níveis para cada imagem. Estas funções carregam ainda a imagem automaticamente utilizando a funçãoglTexImage. As variantes da função são:gluBuild1DMipmaps (int target , int internalFormat ,int width ,int format , int type ,Buffer data);gluBuild2DMipmaps (int target , int internalFormat ,int width , int height ,int format , int type ,Buffer data);gluBuild3DMipmaps (int target , int internalFormat ,int width , int height , int <strong>de</strong>pth ,int format , int type ,Buffer data);A utilização <strong>de</strong>stas funções é semelhante à utilização da função glTexImage, no entanto, não especificamos oargumento level uma vez que os níveis <strong>de</strong> mip são gerados <strong>de</strong> forma automática. A imagem é redimensionadautilizando um box filter, que po<strong>de</strong>rá não ter o mesmo efeito que utilizando um programa <strong>de</strong> <strong>de</strong>senho (como oPhotoshop).Para o caso <strong>de</strong> querermos especificar o nível <strong>de</strong> mip a que uma imagem se refere 1 aquando da geração dosníveis po<strong>de</strong>mos ainda utilizar:gluBuild1DMipmapLevels (int target , int internalFormat ,int width ,int format , int type , int level ,int base , int max , Buffer data);gluBuild2DMipmapLevels (int target , int internalFormat ,int width , int height ,int format , int type , int level ,int base , int max , Buffer data);gluBuild3DMipmapLevels (int target , int internalFormat ,int width , int height , int <strong>de</strong>pth ,int format , int type , int level ,int base , int max , Buffer data);Aqui o level especifica o nível <strong>de</strong> mip a que a imagem (data) se refere e o base e max, <strong>de</strong>finem o nívelmínimo e máximo <strong>de</strong> mip. Estas funções são utilizadas para gerar os níveis <strong>de</strong>ntre base e max.8.5.6 Geração <strong>de</strong> Mipmaps por HardwareSe soubermos que queremos utilizar todos os níveis <strong>de</strong> mipmapping, po<strong>de</strong>mos utilizar a aceleração <strong>de</strong> hardwaredo OpenGL para os gerar <strong>de</strong> forma rápida. Isto é conseguido fazendo:gl. glTexParameteri ( GL2 . GL_TEXTURE_2D , GL2 . GL_GENERATE_MIPMAP , GL2 . GL_TRUE );Quando o valor <strong>de</strong> GL GENERATE MIPMAP é GL TRUE, as chamadas subsequentes a glTexImage e glTexSubImageque actualizam o nível 0, actualizam <strong>de</strong> forma automática todos os outros níveis 2 . A utilização <strong>de</strong>sta funcionalida<strong>de</strong>permite um ganho em <strong>de</strong>sempenho relativamente à utilização <strong>de</strong> gluBuildMipmaps.1 Por exemplo: temos a imagem para o nível 4 <strong>de</strong> mip e estamos a gerar do 0 ao 82 Esta funcionalida<strong>de</strong> está disponível apenas para versões do OpenGL ≥ 1.488

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

Saved successfully!

Ooh no, something went wrong!