promotional bannermobile promotional banner

Solstice

A Minecraft shader pack that balances stunning visuals and smooth performance.
Back to Files

Solstice V2

File nameSolstice-v2.zip
Uploader
d0mkaaad0mkaaa
Uploaded
Sep 9, 2026
Downloads
3.7K
Size
128.2 KB
File ID
8844510
Type
R
Release
Supported game versions
  • 26.2
  • 26.1.2
  • 26.1.1
  • 26.1
  • 1.21.11
  • 1.21.10
  • 1.21.9
  • 1.21.8
  • 1.21.7
  • 1.21.6
  • 1.21.5
  • 1.21.4
  • 1.21.2
  • 1.21
  • OptiFine
  • 1.21.3
  • 1.21.1
  • Iris

What's new

v2

Physically based soft shadows

  • Replaced the fixed texel-radii PCSS heuristic with a physical penumbra: the sun's angular radius (0.0093 radians, shared with the visible sun disc) drives similar-triangle softening from the blocker's height, so shadows are contact-sharp and widen with caster distance like real area-light shadows
  • Converted filter radii from world units to local shadow-map texels through the closed-form distortion derivative, so the same caster blurs the same amount regardless of its position on the distorted map; depth and lateral scale now read shadowProjection directly, adapting to resolution and shadow-distance settings
  • Added slope-scaled receiver bias derived from N·L and the local texel size, replacing constant depth offsets that were tuned to one resolution
  • Unified shadow-map projection across terrain, entities, native water, and DH water through one shared receiver function with a world-space normal offset; water glints and DH water glints previously projected with no receiver offset
  • Derived the blocker search radius from the physical maximum penumbra and clamped it to the filter-quality sample budget

Underwater continuity

  • Replaced the binary in-water switch with a continuous submersion factor: the water composite and final pass probe the rendered, displaced water surface above the camera and measure the eye's depth below it, ramping over half a block
  • The probe now also measures the plane from nearby water-surface pixels when the straight-up view cannot see it, so level and downward views no longer snap to the engine's binary flag while swimming or diving
  • Water Fresnel, the refraction index flip, the surface's sky-reflection weight, atmospheric-to-underwater fog handover, and the underwater wobble, blur, and FXAA blend all interpolate by that factor, removing the hard pop when diving and the flicker while swimming at the wave line
  • Transmitted content below the surface switches to the refracted sky early in the ramp instead of at its midpoint; an eye just under the surface now sees the Snell window it physically should, without the dark band that appeared between the window and the horizon after submerging
  • Underwater volume integration follows the ray: upward rays stop at the water-plane crossing, so above-water scenery seen during the ramp and sky slivers at the shore no longer receive full-depth murk
  • The engine's in-water flag only seeds the factor when no surface is visible overhead, so eyes above a wave trough render the clean above-water view even while the block state still reports submerged
  • Water and Distant Horizons water sun glints hand over to the sky-lit estimate at the shadow range, matching terrain, instead of cutting to zero; the horizon keeps its sparkle

Shared surface optics

  • Replaced the separate highlight formulas with one GGX BRDF shared by materials, water, glass, and puddles: Trowbridge-Reitz distribution, height-correlated Smith visibility, and Schlick Fresnel, with a roughness floor of 0.045 that broadens very sharp highlights to reduce aliasing; the previous distribution clamp flattened polished highlights, and the water and material paths mapped roughness differently
  • Material direct diffuse weights by (1 - metalness) * (1 - F), and back-facing light or view directions return zero before constructing the half vector
  • Material reflectance keeps all three colour channels in an RGBA16F colortex8, so authored conductors retain coloured reflectance including the gold/iron distinction and HDR water highlights survive the buffer
  • Reflection normals use octahedral encoding in the existing two channels; reconstructing an always-positive view-space Z previously lost normals in the opposite hemisphere
  • Environment reflections use a polynomial fit to the correlated GGX hemispherical integral offline, validated on 483 held-out angle and roughness pairs; the fit adds no texture or runtime dependency and preserves RGB conductor colour
  • Only the sky-derived portion of metal ambient lighting gives up energy to environment reflections; block light, held light, dimension lighting, and ambient floors keep their material tint, so enabling reflections no longer dims torch-lit metals
  • Puddles use water Fresnel at the perturbed surface normal instead of a fixed 15% minimum plus a separate large reflection blend
  • Transparent blending partitions reflection and body opacity before converting to straight alpha (F + (1 - F) * a), so reflections keep their full weight after blending instead of being reduced by alpha a second time
  • Water uses unpolarized dielectric Fresnel at an index of refraction of 1.333 (normal-incidence reflectance about 0.0204), shared by native and Distant Horizons water

Deferred water and reflections

  • Added a deferred pass that copies the opaque scene to colortex9 before translucent draws; the water composite reconstructs the surface from colortex3 markers and colortex8 unattenuated direct specular light plus skylight exposure, adding eight bytes per pixel per buffer set
  • Submerged cameras now blend visible clouds into the scene and the snapshot before water and other translucents draw; the former late cloud pass skipped underwater views and left a cloud-free sky in the water background, and cloud_view.glsl shares one visible cloud field between the air pass and the underwater snapshot
  • Rewrote SSR in screen_trace.glsl as interval tracing: rays clip to the near plane and screen bounds, step along the dominant projected pixel axis, and test the depth interval between adjacent samples instead of isolated points, which previously let a ray step over a wall's depth slab; seven refinement iterations and a final thickness check reject false hits, and the edge fallback transition shrank from 28-32% of the screen to 6%
  • SSR is now opt-in: every profile and the default settings compile it out, and materials use sky-only reflections in Medium, High, and Ultra; reselect a preset after updating to clear saved SSR settings
  • SSR returns its fallback without tracing underwater, and its sky fallback traces the same animated 3D cloud density and light attenuation as the visible sky; cloud reflections in water use fewer samples and skip the cirrus layer
  • Rebuilt water waves as four travelling components at 5.5, 2.3, 1.0, and 0.42 block wavelengths whose angular frequency follows deep-water dispersion; normals use analytical height derivatives and the submerged underside opacity follows a slope-weighted cue from the same phases
  • Water refraction samples the deferred opaque snapshot at the original screen coordinates; DH water now compares reconstructed native and DH positions for occlusion, so native terrain behind water no longer erases the water face while native foreground still occludes it, and the distance-only alpha fade that left gaps when native water was absent is gone
  • Outdoor light shafts use visible sky depth as their source, so bright opaque walls no longer count as sky, and underwater light shafts are disabled
  • DH terrain keeps its supplied average texture colour instead of adding world-space material noise and a second desaturation pass, and the separate white metal glint is removed; native and DH surfaces share one fog distance law, and only cleared depth 1.0 counts as sky

Glass and generated materials

  • Glass defaults to F0 0.04 and smoothness 0.90 instead of inheriting the polished-block material; its sky fallback excludes the solar disc, and texture detail uses ambient lighting, removing a broad coloured wash on sun-facing panes
  • Coloured sunlight transmitted through glass onto nearby surfaces now uses an opacity-weighted tint, (1 - opacity) + opacity * textureColour, instead of a fixed 90% tint and 1.6 saturation boost
  • The shadow colour target now carries caster opacity and reserves alpha code 255 for water; only tagged water applies animated caustic modulation, so moving bright stripes no longer show through glass, and translucent casters join the blocker search so their distance controls penumbra size
  • Generated vanilla metal textures keep their diffuse body and use F0 0.04 with smoothness 0.60 (Natural) or 0.72 (Pronounced) instead of being treated as full conductors whose sky-only reflection dominated unrepresented surroundings; authored LabPBR conductors keep supplied metalness and reflectance
  • Held and dropped block items resolve the same material classes as placed blocks through currentRenderedItemId, sample terrain shadows and cloud visibility instead of bypassing the shadow map, and clear their reflection metadata so the world cannot reflect through the hand
  • Added steep-parallax occlusion against the LabPBR height field; flat maps (alpha 255 everywhere, the default when a pack omits height) return on the first probe and pay no march cost

Clouds, sun, and night sky

  • Replaced 2D noise slices with continuous 3D value noise for cloud billows and erosion; density now varies in all three dimensions and the flat alto layer is removed, leaving one thin cirrus layer
  • Cloud RGB and opacity share one exponential integration instead of an opacity-only power adjustment; each occupied sample probes density three times along the light direction with Beer-Lambert transmission and a two-lobe Henyey-Greenstein phase approximation
  • The sun is an antialiased disc at HDR intensity 24 with the 0.0093-radian angular radius shared with shadow penumbra construction, plus a separate angular halo so it stays visible through the tone curve
  • Night sky uses a continuous horizon-to-zenith gradient independent of the engine's sky-mesh vertex colours and dims with weather; moonlight now varies with moon phase and ambient lighting is less blue
  • The Milky Way is fainter with a smooth band structure, and stars use Iris's star render stage (MC_RENDER_STAGE_STARS) instead of guessing from grayscale vertex colours

Performance

  • Fused FXAA and contrast-adaptive sharpening into one pass sharing a single 3x3 neighbourhood, roughly halving full-resolution fetches for those effects; the fusion reproduces the previous two-pass output

This mod has no additional files