Anisotropes Filtern: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Neuerstellung)
 
K (Aktivierung von anisotropischer Filterung ( in C ))
 
Zeile 22: Zeile 22:
 
      
 
      
 
     glGetFloatv( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &maxAni );
 
     glGetFloatv( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &maxAni );
 +
    glBindTexture( GL_TEXTURE_2D, theTex );
 
     glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, maxAni );               
 
     glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, maxAni );               
 
}</source>
 
}</source>

Aktuelle Version vom 20. März 2009, 09:20 Uhr

Anisotropische Filterung ist eine Technik, die häufig eingesetzt wird, um unscharfe verschwommene Texturen unter einem flachen Betrachtungswinkel zu vermeiden.

Meistens werden Mipmaps und lineare Filter benutzt, um die Qualität von Texturen zu erhöhen. Unter einem flachen Betrachtungwinkel erscheinen diese jedoch 'verwaschen' ( siehe Bild unten links ).

Bei anisotroper Filterung wird der Betrachtungswinkel berücksichtigt und es entstehen immer geschärfte Texturen.

Textur mit linearer Filterung.
Textur mit anisotropischer Filterung.

Mit OpenGL

In OpenGL gehört anisotropische Filterung leider nicht zum Kern, kann jedoch einfach durch die Extension GL_EXT_texture_filter_anisotropic aktiviert werden, welche auf den meisten Grafikkarten zur Verfügung steht.

Aktivierung von anisotropischer Filterung ( in C )

if ( glewIsSupported( "GL_EXT_texture_filter_anisotropic" ) )
{
    float maxAni;
    
    glGetFloatv( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &maxAni );
    glBindTexture( GL_TEXTURE_2D, theTex );	
    glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, maxAni );              
}

Hinweis

Anisotropische Filterung sollte mit Bedacht eingesetzt werden, da sie durch erhöhten Rechenaufwand zu Performanceeinbußen führen kann. Auf aktuellen Grafikkarten sollte der Unterschied jedoch nicht sehr gravierend sein.

Links