Filtrowanie anizotropowe

27.10.2008 00:06 in grafika 3D, programowanie, OpenGL

Przy obecnym sprzęcie filtrowanie anizotropowe tekstur stało się już niemalże standardem. O tym, że jest ono potrzebne, nie trzeba raczej nikogo przekonywać. Zobaczmy sami:

Po lewej - filtrowanie włączone (4x), po prawej - wyłączone. Na ściankach pod dużym kątem widać doskonale różnicę w filtrowaniu.

Pytanie, jak tego efektu użyć w naszym programie OpenGL? Podobnie jak większość ,,nowoczesnych'' opcji, ustalamy je za pomocą rozszerzenia. W tym przypadku zwie się ono GL_EXT_texture_filter_anisotropic. Najłatwiej jest skorzystać z niego (jak również z wszystkich innych) za pomocą GLEW. Aby włączyć filtrowanie anizotropowe dla danej tekstury, musimy ją uaktywnić i ustawić dla niej następującą opcję:

glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, v);

Gdzie v to nasza wartość AF (4 albo 8 powinno być w sam raz, na sprzęcie z górnej półki nie bójmy się ustawić 16). Maksymalną wartość można odczytać za pomocą zapytania:

float max;
glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &max);

Więc do roboty i włączcie filtrowanie anizotropowe we wszystkich swoich projektach! :)

Comments:

  1. kuba

    kuba:

    hej
    probowalem wlaczyc te filtrowanie anizotropowe ale nie wiem jak
    mam

    .....
    float max;
    glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT,

    23.03.2009 12:45:33

Leave comment: