/
vTech
/
FcApps
Обзор
Документация
Войти
/
vTech
/
FcApps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
FcLibs/FcUI/src/GL/FcUI_Program_Fragment_Graphics0.frag
49 строк
1 KB
vTech
alpha_00
03 дек 2025, 17:45
03 дек 2025, 17:45
ab8382d
Код
Авторство
О чём код?
#version 130 //in vec4 gl_FragCoord; in vec2 fTexCoord; in vec4 fColor; in vec4 fColorU; in vec2 fMouse; in float fTime; uniform sampler2D sTexture; const float smoothing = 1.0 / 8.0; #define OUTLINE_MAX_VALUE0 1 #define OUTLINE_MAX_VALUE1 0.5 #define OUTLINE_MIN_VALUE0 0.5 #define OUTLINE_MIN_VALUE1 0.5 #define OUTLINE_COLOR 0.1 #define OUTER_GLOW_COLOR vec3(0.5, 0.5, 0.5) #define GLOW_UV_OFFSET vec2(-0.001, 0.001) vec4 lerp(vec4 a, vec4 b, float w) { return a + w * (b - a); } vec4 fMouseColor() { return vec4(smoothstep(1, 5, length(gl_FragCoord.xy - fMouse))); } void main(){ vec4 mColor0, mColor1, mColor; float mAlpha = texture(sTexture, fTexCoord).a; float mWidth = fwidth(mAlpha); float b=min((mAlpha - OUTLINE_MIN_VALUE0)*OUTLINE_MAX_VALUE0, 1.0); float a=clamp((mAlpha - OUTLINE_MIN_VALUE0)*OUTLINE_MAX_VALUE0, 0.0, 1.0); mColor0=vec4(OUTER_GLOW_COLOR+(fColor.rgb-OUTER_GLOW_COLOR)*a, b*fColor.a); //mColor0 = vec4(fColor.rgb, step(0.5, mAlpha)); mColor0 = vec4(fColor.rgb, smoothstep(0.5-mWidth, 0.5+mWidth, mAlpha)); mColor = mColor0; mColor = lerp(mColor, fColor, 0.5); mColor = lerp(mColor, fMouseColor(), 0.5); gl_FragColor = mColor * fColorU; }