NewCraftRank SitesA free website and storeMake yours ›
AshlarFree server software built on Paper, with DDoS and backdoor protection See Ashlar ›CommunityAsk questions, share builds and find people to play with Join the forum ›
Resources / Shaders / Adaptive Outline

Adaptive Outline

the outline lightens and darkens

ShadersFree1.20 – 1.21
by RodAnfatine · listed from Modrinth
Download ›

Direct download from Modrinth · 3,362 downloads

Adaptive Outline screenshot 1Adaptive Outline screenshot 2Adaptive Outline screenshot 3

What it does

Adaptive Outline is a shader pack made by RodAnfatine. the outline lightens and darkens.

It supports Minecraft 1.20 – 1.21. It has been downloaded 3,362 times on Modrinth. The last update came out on Jul 15, 2026.

Supported versions

1.211.20

Release history

Adaptive Outline has had 2 releases on Modrinth since Dec 28, 2025. 2 of them came out in the past year. The newest is 1.1, released on Jul 15, 2026. It is made for Minecraft 1.20 – 1.21.11. It runs on Iris and Optifine. The download is 13 KB.

VersionReleasedMinecraftType
1.1Jul 15, 20261.20 – 1.21.11Release
1Dec 28, 20251.20 – 1.21.11Release
Description from the author on Modrinth

This is a vanilla shader with a stroke.

The stroke brightens the light areas and darkens the dark areas.

шейдер изменём только в final.fsh

version 330 compatibility

uniform sampler2D colortex0;
uniform sampler2D depthtex0;

in vec2 texcoord;
layout(location = 0) out vec4 color;

void main() {
vec2 texel = 1.0 / vec2(textureSize(colortex0, 0));
vec4 scene = texture(colortex0, texcoord);

float d_center = 1.0 - textureLod(depthtex0, texcoord, 0.0).r;

vec2 offsets[2] = vec2[](
vec2(texel.x, 0),
vec2(texel.x * 3.0, 0)
);

float gradients[4];

for(int i = 0; i < 2; i++) {
float d_right = 1.0 - textureLod(depthtex0, texcoord + offsets[i], 0.0).r;
float d_left = 1.0 - textureLod(depthtex0, texcoord - offsets[i], 0.0).r;

gradients[i] = abs(d_right - d_left) / (offsets[i].x * 2.0);

vec2 vertical_offset = vec2(0, offsets[i].x);
float d_up = 1.0 - textureLod(depthtex0, texcoord + vertical_offset, 0.0).r;
float d_down = 1.0 - textureLod(depthtex0, texcoord - vertical_offset, 0.0).r;

gradients[i + 2] = abs(d_up - d_down) / (vertical_offset.y * 2.0);
}

float gradient_ratio_h = gradients[0] / (gradients[1] + 0.0001);
float gradient_ratio_v = gradients[2] / (gradients[3] + 0.0001);

bool is_real_edge_h = gradient_ratio_h > 2.0;
bool is_real_edge_v = gradient_ratio_v > 2.0;

float edge = 0.0;

if(is_real_edge_h || is_real_edge_v) {
float max_gradient = max(gradients[0], gradients[2]);
edge = max_gradient * 500.0;
}

float depth_precision = 0.001 + d_center * 0.01;
if(edge < depth_precision * 100.0) {
edge = 0.0;
}

float threshold = 0.15;

if(edge > threshold && (is_real_edge_h || is_real_edge_v)) {
float edge_strength = clamp((edge - threshold) * 2.0, 0.0, 1.0);

vec4 color_up = texture(colortex0, texcoord + vec2(0, texel.y));
vec4 color_down = texture(colortex0, texcoord - vec2(0, texel.y));
vec4 color_left = texture(colortex0, texcoord - vec2(texel.x, 0));
vec4 color_right = texture(colortex0, texcoord + vec2(texel.x, 0));

vec4 avg_color = (color_up + color_down + color_left + color_right) * 0.25;

float neighbor_brightness = dot(avg_color.rgb, vec3(0.299, 0.587, 0.114));

float brightness_factor;

if(neighbor_brightness > 0.35) { // here we change the change threshold
brightness_factor = 1.0 + edge_strength * 0.2; // we're changing it here brightens
} else {
brightness_factor = 1.0 - edge_strength * 0.2; // we're changing it here darkens
}

color.rgb = scene.rgb * brightness_factor;
color.a = scene.a;

} else {
color = scene;
}
}

Written by RodAnfatine. Read it with pictures on Modrinth.

How to install Adaptive Outline

  1. Install Iris (with Sodium) or OptiFine for your Minecraft version: shaders need one of them.

  2. Download the .zip file from Modrinth. Do not unzip it.

  3. In Minecraft, open Options, then Video Settings, then Shader Packs, and click Open Shader Pack Folder.

  4. Drop the .zip file into that folder, pick Adaptive Outline in the list and click Done.

  5. Shaders are heavy on the graphics card. If the game gets slow, pick a lower profile in the shader settings.

Full guide: How to install Minecraft shaders

Compatibility

Minecraft versions
1.21, 1.20
Edition
Java
Needs
Nothing else
License
MIT
Price
Free
Upkeep
Actively updated (Nov 11, 2026)

Questions

Does Adaptive Outline work on Minecraft 26.x?

Not yet. The newest version it supports is Minecraft 1.21.

Is Adaptive Outline free?

Yes. Adaptive Outline is free to download from Modrinth.

Is Adaptive Outline still updated?

Yes. The last update came out in the past day.

Reviews

–★★★★★
0 reviews
50
40
30
20
10

Log in to leave a review.