|
|
|
@ -743,8 +743,6 @@ static Ogre::String getMaterial(const Nif::NiTriShape *shape, const Ogre::String
|
|
|
|
|
blend_mode += getBlendFactor((alphaFlags>>5)&0xf);
|
|
|
|
|
instance->setProperty("scene_blend", sh::makeProperty(new sh::StringValue(blend_mode)));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
instance->getMaterial()->setShadowCasterMaterial("openmw_shadowcaster_noalpha");
|
|
|
|
|
|
|
|
|
|
if((alphaFlags>>9)&1)
|
|
|
|
|
{
|
|
|
|
@ -754,9 +752,12 @@ static Ogre::String getMaterial(const Nif::NiTriShape *shape, const Ogre::String
|
|
|
|
|
reject += Ogre::StringConverter::toString(alphaTest);
|
|
|
|
|
instance->setProperty("alpha_rejection", sh::makeProperty(new sh::StringValue(reject)));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
instance->getMaterial()->setShadowCasterMaterial("openmw_shadowcaster_noalpha");
|
|
|
|
|
|
|
|
|
|
// Ogre usually only sorts if depth write is disabled, so we want "force" instead of "on"
|
|
|
|
|
instance->setProperty("transparent_sorting", sh::makeProperty(new sh::StringValue(!((alphaFlags>>13)&1) ? "force" : "off")));
|
|
|
|
|
instance->setProperty("transparent_sorting", sh::makeProperty(new sh::StringValue(
|
|
|
|
|
((alphaFlags&1) && !((alphaFlags>>13)&1)) ? "force" : "off")));
|
|
|
|
|
|
|
|
|
|
instance->setProperty("depth_check", sh::makeProperty(new sh::StringValue((depthFlags&1) ? "on" : "off")));
|
|
|
|
|
instance->setProperty("depth_write", sh::makeProperty(new sh::StringValue(((depthFlags>>1)&1) ? "on" : "off")));
|
|
|
|
|