mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +00:00
Stabilize foliage shadows and smooth motion transitions
- keep shadow projection center fixed while moving to remove per-frame projection churn flicker - replace delayed post-move catch-up with immediate stop transition and idle smoothing - rework foliage shadow caster motion to use blended phase-shifted UV samples for continuous position transitions - reduce high-frequency foliage threshold popping by removing threshold warping path - sharpen terrain receive filtering with tuned 5-tap PCF weights/offset for more detailed shadows - raise shadow map resolution to 1536 and keep light-space texel snapping for stable sampling - set shadows enabled by default and lower global shadow strength from 0.65 to 0.62 - keep foliage animation speed consistent between moving and idle at 80%
This commit is contained in:
parent
1003b25ff4
commit
7717ab8d6b
8 changed files with 111 additions and 54 deletions
|
|
@ -52,8 +52,16 @@ float calcShadow() {
|
|||
vec3 norm = normalize(Normal);
|
||||
vec3 lightDir = normalize(-uLightDir);
|
||||
float bias = max(0.005 * (1.0 - dot(norm, lightDir)), 0.001);
|
||||
// Single hardware PCF tap — GL_LINEAR + compare mode gives 2×2 bilinear PCF for free
|
||||
float shadow = texture(uShadowMap, vec3(proj.xy, proj.z - bias));
|
||||
// 5-tap PCF tuned for slightly sharper detail while keeping stability.
|
||||
vec2 texel = vec2(1.0 / 1536.0);
|
||||
float ref = proj.z - bias;
|
||||
vec2 off = texel * 0.7;
|
||||
float shadow = 0.0;
|
||||
shadow += texture(uShadowMap, vec3(proj.xy, ref)) * 0.55;
|
||||
shadow += texture(uShadowMap, vec3(proj.xy + vec2(off.x, 0.0), ref)) * 0.1125;
|
||||
shadow += texture(uShadowMap, vec3(proj.xy - vec2(off.x, 0.0), ref)) * 0.1125;
|
||||
shadow += texture(uShadowMap, vec3(proj.xy + vec2(0.0, off.y), ref)) * 0.1125;
|
||||
shadow += texture(uShadowMap, vec3(proj.xy - vec2(0.0, off.y), ref)) * 0.1125;
|
||||
return mix(1.0, shadow, coverageFade);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue