aboutsummaryrefslogtreecommitdiff
path: root/src/client/shadows/shadowsshadercallbacks.cpp
Commit message (Collapse)AuthorAge
* Adjust shadowmap distortion to use entire SM texture (#12166)x20482022-04-07
|
* Tune shadow perspective distortion (#12146)x20482022-03-31
| | | | | * Pass perspective distortion parameters as uniforms * Set all perspective bias parameters via ShadowRenderer * Recalibrate perspective distortion and shadow range to render less shadow geometry with the same quality and observed shadow distance
* Move updating shadows outside of RenderingCore::drawAll. (#11491)x20482021-08-12
| | | | Fixes indirect rendering modes such as some 3D modes mentioned in #11437 and undersampled rendering. Does not fully fix anaglyph 3d mode.
* Shadow mapping render pass (#11244)Liso2021-06-06
Co-authored-by: x2048 <codeforsmile@gmail.com>
ndef DAYNIGHTRATIO_HEADER #define DAYNIGHTRATIO_HEADER inline u32 time_to_daynight_ratio(float time_of_day, bool smooth) { float t = time_of_day; if(t < 0) t += ((int)(-t)/24000)*24000; if(t >= 24000) t -= ((int)(t)/24000)*24000; if(t > 12000) t = 24000 - t; float values[][2] = { {4250+125, 150}, {4500+125, 150}, {4750+125, 250}, {5000+125, 350}, {5250+125, 500}, {5500+125, 675}, {5750+125, 875}, {6000+125, 1000}, {6250+125, 1000}, }; if(!smooth){ float lastt = values[0][0]; for(u32 i=1; i<sizeof(values)/sizeof(*values); i++){ float t0 = values[i][0]; float switch_t = (t0 + lastt) / 2; lastt = t0; if(switch_t <= t) continue; return values[i][1]; } return 1000; } else { for(u32 i=0; i<sizeof(values)/sizeof(*values); i++){ if(values[i][0] <= t) continue; if(i == 0) return values[i][1]; float td0 = values[i][0] - values[i-1][0]; float f = (t - values[i-1][0]) / td0; return f * values[i][1] + (1.0 - f) * values[i-1][1]; } return 1000; } } #endif