mirror of
https://github.com/OpenMW/openmw.git
synced 2025-06-26 08:41:35 +00:00
Fix vertex color emissive lighting mode handling
This commit is contained in:
parent
935a7a2a57
commit
a8119f3863
1 changed files with 4 additions and 3 deletions
|
@ -2345,7 +2345,7 @@ namespace NifOsg
|
||||||
auto setBin_Traversal = [](osg::StateSet* ss) { ss->setRenderBinDetails(2, "TraversalOrderBin"); };
|
auto setBin_Traversal = [](osg::StateSet* ss) { ss->setRenderBinDetails(2, "TraversalOrderBin"); };
|
||||||
auto setBin_Inherit = [](osg::StateSet* ss) { ss->setRenderBinToInherit(); };
|
auto setBin_Inherit = [](osg::StateSet* ss) { ss->setRenderBinToInherit(); };
|
||||||
|
|
||||||
int lightmode = 1;
|
auto lightmode = Nif::NiVertexColorProperty::LightMode::LightMode_EmiAmbDif;
|
||||||
float emissiveMult = 1.f;
|
float emissiveMult = 1.f;
|
||||||
float specStrength = 1.f;
|
float specStrength = 1.f;
|
||||||
|
|
||||||
|
@ -2401,7 +2401,8 @@ namespace NifOsg
|
||||||
}
|
}
|
||||||
case Nif::NiVertexColorProperty::VertexMode::VertMode_SrcAmbDif:
|
case Nif::NiVertexColorProperty::VertexMode::VertMode_SrcAmbDif:
|
||||||
{
|
{
|
||||||
switch (vertprop->mLightingMode)
|
lightmode = vertprop->mLightingMode;
|
||||||
|
switch (lightmode)
|
||||||
{
|
{
|
||||||
case Nif::NiVertexColorProperty::LightMode::LightMode_Emissive:
|
case Nif::NiVertexColorProperty::LightMode::LightMode_Emissive:
|
||||||
{
|
{
|
||||||
|
@ -2524,7 +2525,7 @@ namespace NifOsg
|
||||||
if (mVersion <= Nif::NIFFile::VER_MW || !specEnabled)
|
if (mVersion <= Nif::NIFFile::VER_MW || !specEnabled)
|
||||||
mat->setSpecular(osg::Material::FRONT_AND_BACK, osg::Vec4f(0.f, 0.f, 0.f, 0.f));
|
mat->setSpecular(osg::Material::FRONT_AND_BACK, osg::Vec4f(0.f, 0.f, 0.f, 0.f));
|
||||||
|
|
||||||
if (lightmode == 0)
|
if (lightmode == Nif::NiVertexColorProperty::LightMode::LightMode_Emissive)
|
||||||
{
|
{
|
||||||
osg::Vec4f diffuse = mat->getDiffuse(osg::Material::FRONT_AND_BACK);
|
osg::Vec4f diffuse = mat->getDiffuse(osg::Material::FRONT_AND_BACK);
|
||||||
diffuse = osg::Vec4f(0, 0, 0, diffuse.a());
|
diffuse = osg::Vec4f(0, 0, 0, diffuse.a());
|
||||||
|
|
Loading…
Reference in a new issue