2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 13:44:56 +00:00

More thermal visor fixes; face reflection fix

This commit is contained in:
Jack Andersen
2019-02-26 18:52:01 -10:00
parent 67b9882dbe
commit 4cb26976bd
5 changed files with 27 additions and 22 deletions

View File

@@ -1093,17 +1093,19 @@ void CBooRenderer::SetThermalColdScale(float scale) { x2f8_thermColdScale = zeus
void CBooRenderer::DoThermalBlendCold() {
zeus::CColor a = zeus::CColor::lerp(x2f4_thermColor, zeus::skWhite, x2f8_thermColdScale);
m_thermColdFilter->setColorA(a);
float bFac = 0.f;
float bAlpha = 1.f;
if (x2f8_thermColdScale < 0.5f) {
if (x2f8_thermColdScale < 0.5f)
bAlpha = x2f8_thermColdScale * 2.f;
bFac = (1.f - bAlpha) / 8.f;
}
zeus::CColor b{bFac, bFac, bFac, bAlpha};
m_thermColdFilter->setColorB(b);
zeus::CColor c = zeus::CColor::lerp(zeus::skBlack, zeus::skWhite,
zeus::clamp(0.f, (x2f8_thermColdScale - 0.25f) * 4.f / 3.f, 1.f));
m_thermColdFilter->setColorC(c);
float bFac = (1.f - bAlpha) / 8.f;
m_thermColdFilter->setColorB(zeus::CColor(bFac, bAlpha));
float cFac;
if (x2f8_thermColdScale < 0.25f)
cFac = 0.f;
else if (x2f8_thermColdScale >= 1.f)
cFac = 1.f;
else
cFac = (x2f8_thermColdScale - 0.25f) * 4.f / 3.f;
m_thermColdFilter->setColorC(zeus::CColor(cFac, cFac));
m_thermColdFilter->setScale(x2f8_thermColdScale);

View File

@@ -681,7 +681,7 @@ void CBooModel::UVAnimationBuffer::ProcessAnimation(u8*& bufOut, const UVAnimati
}
case UVAnimation::Mode::Model: {
texMtxOut = CGraphics::g_GXModelMatrix.toMatrix4f();
texMtxOut[3].zeroOut();
texMtxOut[3] = zeus::CVector4f(0.f, 0.f, 0.f, 1.f);
postMtxOut[0].x() = 0.5f;
postMtxOut[1].y() = 0.f;
postMtxOut[2].y() = 0.5f;