aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlhofhansl <lhofhansl@yahoo.com>2017-10-28 01:33:47 -0700
committerSmallJoker <mk939@ymail.com>2018-06-03 17:32:00 +0200
commit73baeb82ef686991dfbfc1a8b915cbe8e657e33e (patch)
treed3d6ba736dd74e702454763e49f499710d5c053c
parent7b8288d605260a92693a93a85134555a8c975bb9 (diff)
downloadminetest-73baeb82ef686991dfbfc1a8b915cbe8e657e33e.tar.gz
minetest-73baeb82ef686991dfbfc1a8b915cbe8e657e33e.tar.bz2
minetest-73baeb82ef686991dfbfc1a8b915cbe8e657e33e.zip
Avoid filtering low-res textures for animated meshes (incl. players) (#6562)
-rw-r--r--src/content_cao.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/content_cao.cpp b/src/content_cao.cpp
index e90bb90ca..994f0492a 100644
--- a/src/content_cao.cpp
+++ b/src/content_cao.cpp
@@ -1355,6 +1355,13 @@ void GenericCAO::updateTextures(std::string mod)
material.setFlag(video::EMF_LIGHTING, false);
material.setFlag(video::EMF_BILINEAR_FILTER, false);
+ // don't filter low-res textures, makes them look blurry
+ // player models have a res of 64
+ const core::dimension2d<u32> &size = texture->getOriginalSize();
+ const u32 res = std::min(size.Height, size.Width);
+ use_trilinear_filter &= res > 64;
+ use_bilinear_filter &= res > 64;
+
m_animated_meshnode->getMaterial(i)
.setFlag(video::EMF_TRILINEAR_FILTER, use_trilinear_filter);
m_animated_meshnode->getMaterial(i)