Description
A stylized post-processing shader inspired by late-90s anime cinematography.
Forgot My Pills is a lightweight post-processing shader for Iris and OptiFine that transforms Minecraft using color grading, atmospheric depth effects, and stylized screen-space rendering. Rather than replacing the game's lighting model, it builds its look through a simple composite and final pass, emphasizing painterly shading, anime-inspired skies, and cinematic color treatment while keeping the rendering pipeline compact.

✨ Highlights
Anime-inspired sky gradients.
Distant background pixels are replaced with a procedural sky gradient driven by scene depth. The palette blends warm sunset tones with teal shadows and violet-magenta upper skies, while rainfall subtly desaturates and cools the colors to better match overcast weather.
Distance-based atmospheric fog.
The shader linearizes the depth buffer to estimate world distance and applies layered fog that increases with depth. Fog intensity is additionally biased by camera altitude, producing denser low-lying haze without requiring full world-space reconstruction.
Painterly shadow treatment.
World geometry receives gentle stylized shading through tonal quantization and color remapping rather than physically based lighting changes. The effect introduces a soft hand-painted appearance while preserving the original scene detail.
Localized bloom and halation.
Bright areas are sampled using a lightweight multi-tap blur kernel to generate subtle glow and halo effects. The implementation is intentionally inexpensive, relying on a small screen-space sampling pattern rather than multi-stage bloom buffers.
Stylized glare streaks.
The composite pass includes a localized streaking effect around bright highlights by sampling along a diagonal direction. This creates anime-inspired highlight streaks without affecting the entire screen.
Minimal rendering pipeline.
The shader consists of only a composite pass followed by a final pass. Color is read from the primary framebuffer while depth is used only where needed for atmospheric effects, reducing buffer complexity and keeping the implementation approachable.
Screen-space finishing pass.
The final shader stage is prepared for post-processing including chromatic aberration, vignette, film grain, tone mapping, and color grading. In the current implementation, subtle chromatic aberration is active while the grading pipeline remains largely disabled.

⚙️ Compatibility
- Designed for Iris and OptiFine.
- Uses GLSL 1.20 shaders.
- Uses a simple gbuffers → composite → final rendering pipeline.
- Reads the primary color buffer (
gcolor) and the default scene depth buffer (depthtex0). - Composite rendering operates at full resolution by default (
composite.scale = 1.0). - Uses modern lighting (
oldLighting = false).

🎛️ Configurable in-menu
The shader source exposes numerous tuning constants that are intended to control the visual style, including:
- Sky intensity
- Magenta sky tint
- Teal shadow tint
- Sunset warmth
- Painterly shading strength
- Toon shading step count
- Atmospheric fog density
- Height-based fog contribution
- Warm fog coloration
- Bloom strength
- Bloom threshold
- Halation strength
- Glare strength
- Highlight glare threshold
- Glare streak length
- Tone mapping strength
- Warm highlight grading
- Teal shadow grading
- Magenta color grading
- Vignette strength
- Vignette softness
- Film grain strength
- Film grain animation speed
- Chromatic aberration strength
- Maximum chromatic aberration offset
These controls are implemented as shader constants within the source code. The project does not currently define user-facing shader option menus in the provided files.

