
AuraLite Shaders
Легкий, но мощный шейдерпак для Майнкрафт на OpenGL 4.6. Объемные солнечные лучи, HDR-рендеринг, 3D облака, поддержка LabPBR, процедурная лава и экспериментальное физическое небо. Высокая производительность при отличной картинке. Совместимость с Iris, OptiFine, Oculus.
Список изменений
🚀 What's New in v1.1.2 — Render-Distance Shadows & Experimental Distant Horizons (Partial)
Version 1.1.2 extends shadow rendering to the actual render distance with an adaptive LOD system, fixes HDR/TAA pipeline strictness, cleans up deprecated GLSL, and introduces partial, experimental Distant Horizons support (WIP) — without claiming full compatibility yet. Work is ongoing.
🌗 Extended Shadow Distance with Adaptive LOD
- Shadows now reach render distance.
shadowDistancewas60-160mwith a hard cutoff atshadowDistance. Now it scales with quality profiles: 60m (VERY_LOW/LOW, no shadows) → 120m (MED) → 256m (HIGH/ULTRA) → 384m (EXTREME). The cutoff is replaced by a soft fadesmoothstep(far*0.85, far*0.98). - New
SHADOW_LODtoggle — Off / Balanced / Aggressive. Reduces sample count and expands filter radius at distance to keep performance stable:- Balanced:
>25% far → 16 samples ×1.8 radius, >50% → 8 ×2.8 - Aggressive:
>15% → 16×2.0, >35% → 8×3.5, >60% → 4×5.0 - Beyond 95%
farshadow sampling is skipped entirely.
- Balanced:
shadowMapResolutionnow includes8192. EXTREME uses 8192 for maximum texel density at 384m. HIGH stays 2048, ULTRA 4096.- New
SHADOW_PCSS_BLURtoggle — fixed softness vs PCSS penumbra softening. When enabled, penumbra grows with blocker distance and rain. When disabled, shadows use constant softness. - PCSS correctness fixes in
composite.fsh:sampleShadow(): added UV bounds checks (prevents clamp-to-border artifacts),avgBlockerDepthclamped to1e-4to avoid NaN,penumbraSizeclamped0-2.0,lightSizereduced140→40to prevent light bleeding,actualSpreadcapped to16.0, out-of-bounds samples counted as unshadowed (1.0) for correct averaging. - Shadow bias
distBiasnow scales withfarinstead ofshadowDistance, plus extra water receiver bias for tagged water pixels (colortex2.a≈0.8).
🔧 HDR Pipeline Strictness Fix
- Dummy
#define RGBA16F 0guards added before theconst int colortex*Format = RGBA16Fdirectives. This satisfies strict GLSL validators (C1503 undefined variable RGBA16F) while Iris/OptiFine's parser still reads the format names (spec second clause). In v1.1.1 the directives were inside a/* */comment and were ignored by some loaders. - Now all used buffers are explicitly
RGBA16F:colortex0/1/2(main HDR + PBR + material tags),colortex3/4/5/6(unused today but set to HDR for a full pipeline),colortex7(TAA history,colortex7Clear=false), and optionalshadowcolor0/1Format = RGBA16F. - Cost noted: ~16MB per 1080p RGBA16F buffer → ~128MB VRAM for 8 buffers.
🌍 Experimental — Partial Distant Horizons Support (WIP, not full support)
⚠️ AuraLite does NOT yet claim full Distant Horizons compatibility. v1.1.2 only adds a minimal, experimental code path so LOD chunks are no longer invisible under Iris. It's functional enough for testing, but considered partial and work-in-progress.
- Why it was needed: Without
dh_terrain.vsh/.fsh,dh_water.vsh/.fsh,dh_shadow.vsh/.fsh, Iris marks the pack as incompatible with DH and simply doesn't draw DH's simplified LOD chunks at all — symptom "shader works but DH chunks invisible". Presence of these files is enough for Iris/DH auto-detection (dhShadow.enableddefaults true). - What v1.1.2 does:
dh_terrain/dh_waterwrite the samecolortex0/1/2layout as vanilla passes, so existing lighting/fog/shadow/cloud/godray code incomposite.fshapplies to LOD geometry without other changes.- Depth reconciliation in
composite.fsh: detectsdepthtex0>=1.0 && dhDepthTex0<1.0→isDHTerrain, reconstructs viewPos viadhProjectionInverse(notgbufferProjectionInverse— different far planes) and computesisSkyPixel. Fixes DH terrain being treated as sky (flat/washed-out). - Fog rescale:
effectiveDensity *= far/dhRenderDistanceprevents exponential fog from saturating to white before DH draw distance. - Emissive fast-path uses
!isSkyPixelinstead ofdepth<1.0so distantDH_BLOCK_ILLUMINATED(glowstone/lanterns) is still emissive. final.fshheat shimmer now checksdhDepthTex0viaisRealGeometryso distant lava lakes also shimmer.- Overdraw prevention:
if(dist < far+16.0) discardin DH passes — DH renders entire world including area already covered by vanilla chunks; without discard both fight over same G-buffer pixel causing Z-fighting / missing water/ice.
- Current limitations (why it's partial):
gl_MultiTexCoord2is not guaranteed to carry valid lightmap data for DH programs — v1.1.2 hardcodeslmcoord = vec2(0.0,1.0)(open sky, no torch). Correct for exterior DH, but not interior-perfect.- No LabPBR
normals/specularmaps for DH — roughness/metalness approximated perdhMaterialId(STONE/WOOD/METAL/SNOW/LEAVES/LAVA...). No POM on DH. - Water uses flat vertex normal, not procedurally displaced like near water.
- Fog/sky/cloud code paths are shared but DH has coarser geometry.
- Ongoing work: proper skylight baking if DH ever exposes it, LabPBR fallback, smoother transition seam, performance tuning. Full support will be announced separately.
🛠️ Pipeline Cleanup & Fixes
- Menu split fix —
[v1.1.1-ui-hotfix]: Oversized option screens were split into[SHADOW_OPTIONS],[PBR_OPTIONS],[AO_REFLECTIONS],[CLOUD_SHAPE],[LIGHT_SHAFTS],[NIGHT_SKY]because some Iris/OptiFine UI builds silently hide buttons when a screen has too many entries. - Deprecated
ftransform()removed fromcomposite.vsh,final.vsh,gbuffers_clouds.vsh,composite1.vsh,composite2.vsh,gbuffers_weather.vsh— replaced with explicitgl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertexfor broader driver compat (same fix applied toshadow.vshin v1.1.0). - Final pass cleanup: Removed two duplicate copy-pasted post-gamma dither blocks that contradicted the comment about linear-space dither (triangle
±1/255before tonemap). The single pre-tonemap dither remains — more effective in darks, silent in brights. - Bias & stale comment fixes: Corrected stale
colortex6hand-off comment (removed in v1.0.3), now notes thatfinal.fshreads normal fromcolortex2and roughness fromcolortex1.z. - Rebalanced profiles to reflect new distances and LOD:
- VERY_LOW/LOW 60m (no shadows), MED 120m Balanced, HIGH 256m Balanced, ULTRA 256m Aggressive, EXTREME 384m Aggressive + 8192 res.
- Localization: Bumped
lang/*.langheadersv1.0.7 → v1.1.2, translated previously-Englishprofile.*.commentplaceholders into native languages (ur_pk, vi_vn, zh_cn, zh_hk, zh_tw and others).
