mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-19 19:09:20 +02:00
support rain shader in experimental
This commit is contained in:
@@ -188,6 +188,45 @@ void GbufferBlitPass::UpdateConstants(nvrhi::ICommandList* command_list,
|
||||
constants.m_altitude = Global.pCamera.Pos.y;
|
||||
constants.m_time = Timer::GetTime();
|
||||
|
||||
{
|
||||
float percipitation_intensity = glm::saturate(Global.Overcast - 1.);
|
||||
constants.m_rain_params.x = percipitation_intensity; // % amount of droplets
|
||||
constants.m_rain_params.y =
|
||||
glm::mix(15., 1., percipitation_intensity); // Regeneration time
|
||||
static glm::vec4 wiper_timer_out;
|
||||
static glm::vec4 wiper_timer_return;
|
||||
if (TDynamicObject const* owner = Global.pCamera.m_owner;
|
||||
owner && !!owner->MoverParameters->CabActive) {
|
||||
for (int i = 0; i < 4; ++i) {
|
||||
if (i < owner->dWiperPos.size()) {
|
||||
int index = owner->MoverParameters->CabActive > 0
|
||||
? i
|
||||
: static_cast<int>(owner->dWiperPos.size() - 1) - i;
|
||||
constants.m_wiper_pos[i] = owner->dWiperPos[index];
|
||||
if (owner->dWiperPos[index] > 0. && owner->wiperDirection[index]) {
|
||||
constants.m_wiper_pos[i] += 1.;
|
||||
}
|
||||
if (owner->dWiperPos[index] < .025) {
|
||||
wiper_timer_out[i] = constants.m_time;
|
||||
}
|
||||
if (owner->dWiperPos[index] > .975) {
|
||||
wiper_timer_return[i] = constants.m_time;
|
||||
}
|
||||
constants.m_wiper_timer_out[i] = wiper_timer_out[i];
|
||||
constants.m_wiper_timer_return[i] = wiper_timer_return[i];
|
||||
} else {
|
||||
constants.m_wiper_pos[i] = 0.;
|
||||
wiper_timer_out[i] = constants.m_wiper_timer_out[i] = -1000.;
|
||||
wiper_timer_return[i] = constants.m_wiper_timer_return[i] = -1000.;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
constants.m_wiper_pos = glm::vec4{0.};
|
||||
wiper_timer_out = constants.m_wiper_timer_out = glm::vec4{-1000.};
|
||||
wiper_timer_return = constants.m_wiper_timer_return = glm::vec4{-1000.};
|
||||
}
|
||||
}
|
||||
|
||||
command_list->writeBuffer(m_draw_constants, &constants, sizeof(constants));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user