From 7e0aeb1bfa5e1018b9f76ad929950292481fecf6 Mon Sep 17 00:00:00 2001 From: tmj-fstate Date: Sat, 18 Feb 2017 18:53:02 +0100 Subject: [PATCH] anisotropic filtering support --- Globals.cpp | 8 +++++++- Globals.h | 1 + Texture.cpp | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Globals.cpp b/Globals.cpp index 14f3968f..c5e613fc 100644 --- a/Globals.cpp +++ b/Globals.cpp @@ -130,6 +130,7 @@ bool Global::bAdjustScreenFreq = true; bool Global::bEnableTraction = true; bool Global::bLoadTraction = true; bool Global::bLiveTraction = true; +float Global::AnisotropicFiltering = 8.0f; // requested level of anisotropic filtering. TODO: move it to renderer object int Global::iDefaultFiltering = 9; // domyślne rozmywanie tekstur TGA bez alfa int Global::iBallastFiltering = 9; // domyślne rozmywanie tekstur podsypki int Global::iRailProFiltering = 5; // domyślne rozmywanie tekstur szyn @@ -465,7 +466,12 @@ void Global::ConfigParse(cParser &Parser) Parser.getTokens(1, false); Parser >> Global::iDynamicFiltering; } - else if (token == "usevbo") + else if( token == "anisotropicfiltering" ) { + + Parser.getTokens( 1, false ); + Parser >> Global::AnisotropicFiltering; + } + else if( token == "usevbo" ) { Parser.getTokens(); diff --git a/Globals.h b/Globals.h index c2b2b708..d63af985 100644 --- a/Globals.h +++ b/Globals.h @@ -237,6 +237,7 @@ class Global static std::string asSky; static bool bnewAirCouplers; // Ra: nowe zmienne globalne + static float AnisotropicFiltering; // requested level of anisotropic filtering. TODO: move it to renderer object static int iDefaultFiltering; // domyślne rozmywanie tekstur TGA static int iBallastFiltering; // domyślne rozmywanie tekstury podsypki static int iRailProFiltering; // domyślne rozmywanie tekstury szyn diff --git a/Texture.cpp b/Texture.cpp index fb9a4dd0..b2f15340 100644 --- a/Texture.cpp +++ b/Texture.cpp @@ -505,6 +505,11 @@ opengl_texture::set_filtering() { ::glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); ::glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR ); + if( GLEW_EXT_texture_filter_anisotropic ) { + // anisotropic filtering + ::glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, Global::AnisotropicFiltering ); + } + bool sharpen{ false }; for( auto const &trait : traits ) {