Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Блюренное стекло - 1.21.1 Fabric

  • Автор темы Автор темы kalcore
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
15 Июн 2025
Сообщения
193
Реакции
1
как вы это ебучее стекло делаете :roflanPominki:
попытался хуйню написать но ниче не вышло
photo_2025-07-18_22-24-30.jpg

glass.json:
Expand Collapse Copy
{
  "blend": {
    "func": "add",
    "srcrgb": "srcalpha",
    "dstrgb": "1-srcalpha"
  },
  "vertex": "position",
  "fragment": "mytheria:glass",
  "attributes": [],
  "samplers": [
    { "name": "InputSampler" }
  ],
  "uniforms": [
    { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
    { "name": "ProjMat",      "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
    { "name": "InputResolution", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
    { "name": "Quality",     "type": "float", "count": 1, "values": [ 20.0 ] },
    { "name": "Brightness",  "type": "float", "count": 1, "values": [ 1.0 ] },
    { "name": "color1",      "type": "float", "count": 4, "values": [ 0.9, 0.9, 1.0, 0.6 ] },
    { "name": "uSize",       "type": "float", "count": 2, "values": [ 100.0, 100.0 ] },
    { "name": "uLocation",   "type": "float", "count": 2, "values": [ 0.0, 0.0 ] },
    { "name": "radius",      "type": "float", "count": 1, "values": [ 10.0 ] }
  ]
}
glass.fsh:
Expand Collapse Copy
#version 150

uniform sampler2D InputSampler;
uniform vec2  InputResolution;
uniform vec2  uSize;
uniform vec2  uLocation;
uniform float radius;
uniform float Brightness;
uniform float Quality;
uniform vec4  color1;

in vec2 texCoord;
out vec4 fragColor;

float roundedBoxMask(vec2 fragPx) {
    vec2 p = fragPx - (uLocation + uSize * 0.5);
    vec2 halfSize = uSize * 0.5;
    float sdf = length(max(abs(p) - (halfSize - vec2(radius)), 0.0)) - radius;
    float aa = fwidth(sdf);
    return 1.0 - smoothstep(0.0, aa, sdf);
}

vec4 gaussianBlur(vec2 uv, float pxRadius) {
    vec2 texel = 1.0 / InputResolution;
    float r = clamp(pxRadius, 0.0, 30.0);
    int radiusI = int(r);

    float sigma = max(r * 1.2, 1.0);
    float twoSigma2 = 2.0 * sigma * sigma;

    vec4 acc = vec4(0.0);
    float weightSum = 0.0;

    float w0 = 1.0;
    acc += texture(InputSampler, uv) * w0;
    weightSum += w0;

    for (int i = 1; i <= 30; ++i) {
        if (i > radiusI) break;
        float x = float(i);
        float w = exp(-(x * x) / twoSigma2);

        acc += texture(InputSampler, uv + vec2(texel.x * x, 0.0)) * w;
        acc += texture(InputSampler, uv - vec2(texel.x * x, 0.0)) * w;
        acc += texture(InputSampler, uv + vec2(0.0, texel.y * x)) * w;
        acc += texture(InputSampler, uv - vec2(0.0, texel.y * x)) * w;

        weightSum += w * 4.0;
    }
    return acc / weightSum;
}

float hash(vec2 p) {
    return fract(sin(dot(p, vec2(12.9898, 78.233))) * 43758.5453);
}

void main() {
    vec2 uv = gl_FragCoord.xy / InputResolution;

    float mask = roundedBoxMask(gl_FragCoord.xy);
    if (mask <= 0.0) {
        discard;
    }

    vec4 blurred = gaussianBlur(uv, Quality * 3.0);

    float luma = dot(blurred.rgb, vec3(0.299, 0.587, 0.114));
    vec3 boosted = mix(vec3(luma), blurred.rgb, 1.5);

    vec3 tinted = mix(boosted, color1.rgb, clamp(color1.a * 1.5, 0.0, 1.0));

    const float EDGE_HALO_STRENGTH = 0.25;
    vec2 p = gl_FragCoord.xy - uLocation;
    vec2 edgeDist = min(p, uSize - p);
    float edge = min(edgeDist.x, edgeDist.y);
    float halo = smoothstep(0.0, 8.0, edge);
    tinted += (1.0 - halo) * EDGE_HALO_STRENGTH;

    float n = hash(gl_FragCoord.xy) * 0.02;
    tinted += n;

    vec4 finalColor = vec4(tinted, mask * Brightness * 1.2);
    fragColor = finalColor;
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

если поможешь мне пофиксить краш джарки после билда на 1.21.4 то дам тебе норм стекло, оптимизированное! но оно на 1.21.4 но перенести думаю не проблема
 
Назад
Сверху Снизу