stateblocks: skylight uses one+(dest)zero. probes use (src)alpha+(dst(1.0-alpha) for a lerp blend. skylight writes out 0 alpha to ensure probes always win if even only a little.

This commit is contained in:
Azaezel 2018-11-27 08:50:44 -06:00
parent da3bf16ef1
commit 5fa2c5b4a6
2 changed files with 3 additions and 3 deletions

View file

@ -780,7 +780,7 @@ bool ReflectProbeMatInstance::setupPass(SceneRenderState *state, const SceneData
desc.setZReadWrite(false);
desc.zWriteEnable = false;
desc.setCullMode(GFXCullNone);
desc.setBlend(true, GFXBlendSrcAlpha, GFXBlendDestAlpha, GFXBlendOpMax);
desc.setBlend(true, GFXBlendSrcAlpha, GFXBlendInvDestAlpha, GFXBlendOpAdd);
mProjectionState = GFX->createStateBlock(desc);
}
// Now override stateblock with our own
@ -805,7 +805,7 @@ bool SkylightMatInstance::setupPass(SceneRenderState *state, const SceneData &sg
desc.setZReadWrite(false);
desc.zWriteEnable = false;
desc.setCullMode(GFXCullNone);
desc.setBlend(true, GFXBlendSrcAlpha, GFXBlendDestAlpha, GFXBlendOpMax);
desc.setBlend(true, GFXBlendOne, GFXBlendZero, GFXBlendOpAdd);
//desc.setBlend(false);
mProjectionState = GFX->createStateBlock(desc);
}