Fix these bugs in my Iris shader pack (MC 1.21.1, NeoForge). Work on ONE item at a time, show full corrected files (no "..."), and explain the root cause in Russian first.
Context: read all current files in /shaders before answering. Do not rewrite the whole pack, only fix what is needed.
1) GRASS/LEAVES NOT MOVING
- Check block.properties: use 1.21.1 names (minecraft:short_grass, minecraft:tall_grass, minecraft:fern, minecraft:large_fern, all *_leaves, crops, flowers). Assign IDs (e.g. block.10001=...), do not use old "grass".
- In gbuffers_terrain.vsh: convert vertex to world space with gbufferModelViewInverse and cameraPosition, apply wind with frameTimeCounter + noise, move only top vertices (use mc_midTexCoord and gl_MultiTexCoord0), convert back. No wind on trunks. Add WIND_STRENGTH slider.
- Verify mc_Entity is declared as `attribute vec4 mc_Entity;` and the ID check matches block.properties.
2) SHADOW BUGS
- Use the SAME distortion function in shadow.vsh and in composite/gbuffers.
- Add normal-offset bias + slope-scaled bias, fix acne and peter-panning.
- Use shadowtex0/shadowtex1 correctly for colored translucent shadows, PCF soft shadows with rotating noise.
- Clamp samples outside the shadow map. Describe what causes each visual artifact I see.
3) WATER + REFLECTIONS
- gbuffers_water: write water normal (animated procedural waves), water mask into a dedicated colortex, correct DRAWBUFFERS.
- composite: SSR using depthtex0/depthtex1, binary-search refinement, fade at screen edges, sky color fallback, fresnel (Schlick). Add refraction and depth-based absorption color (deep blue). Add sun specular highlight.
- Declare colortex formats in shaders.properties.
4) FIRE AND EMISSIVE
- Add fire, lava, torches, lanterns, glowstone, magma to block.properties as emissive.
- In gbuffers_terrain: skip lighting and shadows for emissive, boost brightness (HDR), animate fire flicker slightly. Bloom must pick them up in final.
Rules: GLSL 330 compatibility, linear color, every feature has a #define option, no compile errors (check in/out and uniform declarations).