feat(render3d): texture filtering and shadow resolution a game can change while it runs
- r3d_set_anisotropy(level) updates every mipmapped texture already loaded (OpenGL parameter, Vulkan sampler record), not only later uploads; the game's setting never reached the scanned materials, which load before the settings are read. - shadow_set_res(size) remakes the cascades at 1024 / 2048 / 4096 (shadow_res replaces the SHADOW_RES constant); lighting.glsl reads the texel size from the map, so OpenGL frames at 2048 are unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
c1eb5f399f
commit
5b28063b52
18 changed files with 72 additions and 24 deletions
|
|
@ -109,7 +109,7 @@ float shadowSample(int c, vec3 wpos, float biasWorld) {
|
|||
vec3 p = lp.xyz / lp.w * 0.5 + 0.5;
|
||||
if (p.x < 0.0 || p.x > 1.0 || p.y < 0.0 || p.y > 1.0 || p.z > 1.0) return 1.0;
|
||||
float bias = biasWorld / cascadeRange(c);
|
||||
float texel = 1.0 / 2048.0;
|
||||
float texel = 1.0 / float(textureSize(u_shadow, 0).x); // the shadow resolution setting
|
||||
float r = ign(gl_FragCoord.xy) * 6.2831853;
|
||||
float cs = cos(r), sn = sin(r);
|
||||
mat2 rot = mat2(cs, sn, -sn, cs);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue