1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-06 15:15:34 +00:00

Silence OSG shininess limit warnings

This commit is contained in:
Alexei Kotov 2024-01-04 00:50:35 +03:00
parent 9cbe82ac7b
commit 3ba03782c0

View file

@ -2599,7 +2599,10 @@ namespace NifOsg
emissiveMult = matprop->mEmissiveMult; emissiveMult = matprop->mEmissiveMult;
mat->setSpecular(osg::Material::FRONT_AND_BACK, osg::Vec4f(matprop->mSpecular, 1.f)); mat->setSpecular(osg::Material::FRONT_AND_BACK, osg::Vec4f(matprop->mSpecular, 1.f));
mat->setShininess(osg::Material::FRONT_AND_BACK, matprop->mGlossiness); // NIFs may provide specular exponents way above OpenGL's limit.
// They can't be used properly, but we don't need OSG to constantly harass us about it.
float glossiness = std::clamp(matprop->mGlossiness, 0.f, 128.f);
mat->setShininess(osg::Material::FRONT_AND_BACK, glossiness);
if (!matprop->mController.empty()) if (!matprop->mController.empty())
{ {
@ -2714,7 +2717,8 @@ namespace NifOsg
mat->setAlpha(osg::Material::FRONT_AND_BACK, shaderprop->mAlpha); mat->setAlpha(osg::Material::FRONT_AND_BACK, shaderprop->mAlpha);
mat->setEmission(osg::Material::FRONT_AND_BACK, osg::Vec4f(shaderprop->mEmissive, 1.f)); mat->setEmission(osg::Material::FRONT_AND_BACK, osg::Vec4f(shaderprop->mEmissive, 1.f));
mat->setSpecular(osg::Material::FRONT_AND_BACK, osg::Vec4f(shaderprop->mSpecular, 1.f)); mat->setSpecular(osg::Material::FRONT_AND_BACK, osg::Vec4f(shaderprop->mSpecular, 1.f));
mat->setShininess(osg::Material::FRONT_AND_BACK, shaderprop->mGlossiness); float glossiness = std::clamp(shaderprop->mGlossiness, 0.f, 128.f);
mat->setShininess(osg::Material::FRONT_AND_BACK, glossiness);
emissiveMult = shaderprop->mEmissiveMult; emissiveMult = shaderprop->mEmissiveMult;
specStrength = shaderprop->mSpecStrength; specStrength = shaderprop->mSpecStrength;
specEnabled = shaderprop->specular(); specEnabled = shaderprop->specular();