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

Additional ThermalCold filter work; CStateManager fields

This commit is contained in:
Jack Andersen
2016-07-22 09:46:30 -10:00
parent 68dcc9ca57
commit 6bbed11859
21 changed files with 236 additions and 69 deletions

View File

@@ -89,6 +89,27 @@ void ViewManager::ParticleView::draw(boo::IGraphicsCommandQueue *gfxQ)
//lights = {CLight::BuildLocalAmbient({}, {0.0f, 0.0f, 0.0f, 1.f})};
m_vm.m_modelTest->GetInstance().ActivateLights(lights);
m_vm.m_modelTest->Draw(flags);
zeus::CColor ctrlCol{1.f, 0.f, 0.f, 1.f};
float fac = 0.5f;
zeus::CColor a = zeus::CColor::lerp(ctrlCol, zeus::CColor::skWhite, fac);
m_thermColdFilter.setColorA(a);
float bFac = 0.f;
float bAlpha = 1.f;
if (fac < 0.5f)
{
bAlpha = fac * 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::CColor::skBlack, zeus::CColor::skWhite, fac * 0.75f + 0.25f);
m_thermColdFilter.setColorC(c);
m_thermColdFilter.setScale(std::sin(m_theta) * 0.5f + 0.5f);
m_thermColdFilter.setShift(m_random.Next() % 32);
m_thermColdFilter.draw();
}
if (m_vm.m_partGen)
{

View File

@@ -46,10 +46,12 @@ class ViewManager : public specter::IViewManager
class ParticleView : public specter::View
{
ViewManager& m_vm;
CThermalColdFilter m_thermColdFilter;
CRandom16 m_random;
float m_theta = 0.f;
public:
ParticleView(ViewManager& vm, specter::ViewResources& res, specter::View& parent)
: View(res, parent), m_vm(vm) {}
: View(res, parent), m_vm(vm), m_random(20) {}
void resized(const boo::SWindowRect& root, const boo::SWindowRect& sub);
void draw(boo::IGraphicsCommandQueue* gfxQ);
};