Solstice V3
What's new
v3
Blocky cloud styling
- Blocky clouds form smaller connected clusters with raised edges and taller centres. Bases have deeper shading, sun-facing sides are brighter, and backlit edges catch a restrained highlight.
- The voxel grid drifts with the cloud shape instead of changing occupancy on a fixed world grid. Cloud shadows and reflection density follow it.
- Shape sampling uses two noise octaves per column instead of three, with the existing traversal and self-shadow sample budgets.
Water and camera corrections
- Water uses gentler wave packets with varying crest strength and direction.
- Confirmed water reflection hits keep their scene colour. Visible blockers suppress sky fallback, including when detailed reflections are disabled. Waterfalls use ambient fallback rather than detailed sky reflections.
- Underwater sky directions refract through the surface. Underwater View Radius now defaults to 1.0 for the physical critical angle.
- Sun and moon directions remove Iris's camera translation. Glare visibility uses world shadows and cloud density with shadows enabled, and its strength no longer uses viewport distance from the light.
Quality and performance fixes
- Texture colours and vertex tints are decoded before lighting, and the final image is display encoded. FXAA and sharpening now run after bloom and tone mapping.
- Iris loads baked atmosphere transmittance and multiple-scattering tables. OptiFine keeps the integration fallback. Sky transmission no longer repeats the sunlight and scattering calculations used for sky radiance.
- Parallax respects texture sprite bounds and retains the original texture gradients. It is off in every profile.
- Ambient occlusion now removes ambient light before water and glass are drawn. It preserves direct light and emission, and uses four depth-aware samples to reconstruct the half-resolution result.
- DH Screen Shadows have explicit Off, Balanced, and High settings. Potato, Low, and Medium leave them off. High uses 8 ray steps and Ultra uses 24.
- Entity diffuse and specular lighting share one shadow lookup. Volumetric light stops at visible DH terrain when native depth contains sky.
- Block cloud hit distances include the distance from the camera to the cloud layer. View, shadow, and reflection paths share the block cloud field.
- Underwater reflections use dielectric Fresnel and total internal reflection at the water critical angle, including the actual angle of side faces.
- Coloured block light uses one filtered volume sample instead of eight. Shadow blocker samples now include the centre and interior of the search disk at the existing sample budget.
- Target GPU frame times and in-game images remain unmeasured.
Physically based atmosphere
- The Overworld sky, sunlight, moonlight, ambient light, and fog now come from one atmosphere model. It uses Earth's published Rayleigh, aerosol, and ozone coefficients from Bruneton (2017) and Hillaire (2020). Four prepare passes fill a 256 x 288 buffer. Iris copies the baked transmittance and multiple-scattering tables, then updates the sky-view table and light colours each frame. OptiFine integrates all tables each frame.
- Sunlight passes through the atmosphere, so it warms and dims as the sun lowers. Sun and moon light both reach zero at the horizon, which removes the shadow jump when Iris switches the shadow light at sunrise and sunset.
- Ambient light is the integrated sky plus ground bounce. Sky luminance is normalized to the CIE clear-sky zenith at Linke turbidity 3.5, and clear-noon daylight is the white point.
- A square-root adaptation to daylight keeps golden hour, sunset, and twilight readable. It scales sun, moon, and sky light only. Block light is unchanged.
- Stars, the moon, and the sun disc dim and redden toward the horizon.
Distant Horizons and fog
- Native and DH terrain use one fog law. The DH-only density cut and the far distance scaling are gone. They changed the fog gradient near the native render edge.
- Terrain fades toward the sky's own scattered light, so distant land meets the sky at the horizon without a colour seam. Distant hills pick up blue haze.
- Clouds and cirrus receive the same haze based on their distance.
- The DH edge fade covers the last 28% of the LOD range instead of the last 7.5%.
- Ground mist keeps its sea-level pooling and its dawn, night, and weather changes at a lower clear-day density.
Volumetric light
- With Volumetric Light on, light shafts come from the shadow map. Each half-resolution pixel marches its view ray through height-based haze and tests the shadow map at every step. Trees, cave mouths, and windows cast beams from any viewing angle, not only when the sun is on screen.
- Scattering uses a Henyey-Greenstein forward lobe mixed with an isotropic term, so beams are strongest toward the sun or moon. The haze thickens at dawn, in rain, and on hazy days.
- Settings: Volumetric Light, Volumetric Light Quality, and Volumetric Fog Density. Light Shaft Strength still scales the result. The screen-space shafts remain when Volumetric Light is off.
Ground-truth ambient occlusion
- Ambient occlusion uses ground-truth ambient occlusion (GTAO), after Jimenez and others (2016). It searches the depth buffer for horizons along two to four directions and integrates cosine-weighted visibility. Normals come from the depth buffer.
- Each direction is compared with its own unoccluded value, so flat ground and convex edges stay unshaded and only real creases darken.
- The pass runs at half resolution and rebuilds every position from the centre of the full-resolution depth texel it read. Samples that lie within a few degrees of the surface plane cannot occlude it. The first version mixed half-pixel offsets into the depth reconstruction and drew vertical stripes on walls seen at a steep angle.
- Occlusion reads
depthtex2, which has no hand or translucent blocks, and skips pixels where the hand is in front. It runs before water and glass are drawn, so their depth cannot occlude the scene behind them. - The half-resolution result uses four depth-aware bilinear samples. Native and DH samples use their own projection and do not blend across each other.
- Settings: Ambient Occlusion Quality chooses 2, 3, or 4 directions with 4, 6, or 8 samples each. Distant Horizons terrain keeps the previous estimate.
Daily weather
- Each Minecraft day has its own cloud cover, haze, and cirrus amount. Cloud cover shifts by up to 0.14, haze ranges from half to double, and cirrus from none to double. The next day's weather fades in between 16000 and 20000 ticks, around midnight.
- Clouds, cloud shadows, cloud reflections, fog, and volumetric light all read the same daily values.
- Settings: Daily Weather and Daily Weather Variety.
Settings and profiles
- The menu has new Lighting, Fog & Light Shafts, World Effects, and Camera pages in place of the old Visuals page.
- A Potato profile turns off the shadow pass and every expensive effect.
- Every profile now sets the same 32 performance options. The defaults match Medium, so a new install shows Medium instead of Custom.
- Use Brightness Slider: Minecraft's Brightness setting above the middle now lifts caves and nights. The middle setting and below look as before.
- Cloud Smoothing is visible in the menu. The Shadows toggle now also skips the shadow pass when coloured block light is off.
OptiFine
- Experimental OptiFine fallbacks, not yet tested in game. OptiFine has no
hasSkylightuniform, so the pack maps it to a custom uniform that is always true. Shadows fall back tocameraPositionfor texel alignment when Iris's integer camera uniforms are missing. - Distant Horizons and coloured block light remain Iris only.
Coloured block light
- Light sources tint the blocks around them with their own colour. Soul fire and soul lanterns glow cyan, redstone glows red, and sea lanterns, froglights, amethyst, and crying obsidian keep their own hues. Nearby lights of different colours mix.
- The colour comes from each light source's own texture, so resource packs
change it. Light sources are the blocks listed in
block.properties. Torches, lanterns, fire, and campfires keep the warm torch colour, and their soul versions turn cyan. - Stained glass tints light that passes through it, and walls stop light of one colour from reaching the room next door.
- Brightness still follows the vanilla light level, so rooms are exactly as bright as before. Only the hue changes.
- The shadow pass writes light sources, walls, and glass into a voxel volume around the player. A compute pass spreads the colour one block per frame. The volume follows the camera without shifting the colours.
- Settings: Colored Block Light, Colored Light Range of 64, 128, or 192 blocks, and Colored Light Saturation. It is off by default until it has been confirmed in game. Iris versions without custom images fall back to the torch colour.
- Torches, lanterns, and their soul versions moved to block ID 10015, and amethyst clusters and buds to 10016. They keep their emissive glow.
- The shadow pass uses
#version 400 compatibilitywithGL_ARB_shader_image_load_storeand readsat_midBlockasvec3, the setup Photon uses on Iris. The first version used#version 430and avec4at_midBlockand corrupted terrain geometry in game.
Option fixes
- Shadows, Light Shafts, Rain Puddles, Portal Glow, Heat Shimmer, Cloud
Smoothing, Volumetric Light, and Colored Block Light could not be toggled.
Iris only registers a boolean option that some shader checks with a plain
#ifdefor#ifndef. These options were only checked inside#if defined(...), so Iris ignored them, kept them on, and skipped them in profiles. Each now has a plain#ifdefcheck. The first five were already affected in v2.
Colour controls
- Contrast, Vibrance, and Color Temperature join Color & Tone. Contrast pivots around middle grey before tone mapping. Vibrance boosts muted colours more than vivid ones. Color Temperature warms or cools the image at constant brightness. The defaults leave the image unchanged.
Stable shadows
- Shadows no longer jump every 2 blocks while you walk. Iris snapped the shadow camera to a 2-block grid and the shadow warp moved with it, so every shadow was redrawn in a new place at each snap.
- The shadow warp has a linear core around the player. It covers 5 blocks on Low, 7.5 on Medium, 10 on High, and 12 on Ultra. The core moves in whole shadow texels, so shadows inside it keep their texel alignment while you walk. They shift by less than half a texel once per 8 blocks, when the rotation pivot moves to the next cell.
- Shadows outside the core follow the camera in steps of one core texel, 0.04 blocks on Medium, instead of being redrawn at each snap.
- The sun rotates the shadow map about the centre of the camera's 8-block cell. Shadow edges crawl at about the same rate as before while time passes.
- On Medium, shadow texels are smaller than before from 3.7 to 22 blocks. Right at the feet they are 1.5 times larger, and at the shadow map edge they are 1.36 times larger.
- The shadow pass uses Iris's
cameraPositionIntandcameraPositionFract, so the texel alignment stays exact far from the world origin.
Stable shadow projection
- Shadow Projection has two modes. Sharp keeps the magnified core near the player, and distant shadow edges slide slightly as you walk. Stable uses one linear, texel-aligned projection, so every shadow at every distance stays still while you walk and only re-phases by under half a texel once per 8 blocks. Stable is on in High and Ultra, where texels are 0.125 and 0.078 blocks.
- In Sharp mode, the minimum shadow filter width grows from 0.75 to 1.75 texels toward the edge of the shadow map, which hides the stair steps of the coarse distant texels.
Water reflections
- Water normals are stored at 16 bits per channel. At 8 bits a reflected ray could be off by 1.9 degrees, about as steep as the waves, which drew stepped contours in calm-water reflections. The error is now below 0.01 degrees.
- Reflections that waves tilt below the horizon take the second bounce off the water instead of the dark ground colour. This removes dark speckles at grazing angles on native and Distant Horizons water.
- Waves too small for a pixel add their slope variance to the sun glint roughness instead of disappearing, following Bruneton, Neyret, and Holzschuch (2010). The glint keeps its strength where waves fade with distance. Native and Distant Horizons water share this filter.
- SSR hits receive fog along the reflected ray, so reflected hills match the haze of the hills themselves.
- Waves fade into glint roughness once a wavelength spans less than about six pixels, instead of about two. Distant water no longer breaks into horizontal streaks where each pixel caught a different wave slope.
- Water side faces use at most 2 blocks of water depth. They previously used the distance to whatever lay behind them and turned opaque blue.
- Water reflects the sky only where it is nearly open to the sky. In caves it reflects a dim ambient instead, and SSR still shows the cave around it.
- Water SSR is on in the High and Ultra profiles.
- Water reflects the sky only where the sky is directly overhead, at sky light 15. Under an overhang or at a cave mouth, sky light 14 or less, it reflects dim ambient light instead of bright sky.
- An SSR ray that crosses a surface between two samples now counts as a hit even when the surface depth changes across that step. These rays previously missed and fell back to the sky, which scattered bright shards over water under cave ceilings.
- Refraction no longer pulls sky pixels into water that has a floor behind it.
Falling water
- Steep water faces carry long whitewater streaks that stream down at about 5 blocks per second. Three layers of detail run at slightly different speeds, and each layer fades to its average once it is smaller than a pixel, so far waterfalls do not flicker.
- Falling water is an even, aerated white-blue with soft streaks. Thin parts are light blue-green and thick parts are white. Foam takes sunlight, sky light, and block light, and it hides most of the scene behind the fall, so a shaded waterfall no longer reads as a striped pillar.
- River and lake surfaces keep the normal waves. The streaks apply only to faces steeper than about 27 degrees.
- Clouds now show through water. A waterfall in front of the sky previously showed a clear sky with the clouds cut out.
Underwater
- The water surface seen from below is clear straight overhead and blends smoothly into a mirror of the water below at shallow angles. It reflects about 2% straight up and everything beyond the critical angle of about 48.6 degrees. Waves wobble the view through the surface. With SSR on, the mirror reflects the floor and nearby blocks.
- The reflection angle follows the visible water face, including waterfall side faces.
- Sunlight under water fades over the distance it travels through the water. The shadow map already stores the water surface depth, so floors turn bluer and darker with depth. A vertical water face, such as a waterfall, counts as 1 block of water.
- With Volumetric Light on, underwater light shafts come from the shadow map. They follow the refracted sun, fade with depth, stop under blocks, and carry caustic beams when Caustics is on. Light Shaft Strength scales them.
This mod has no additional files

