21 lines
707 B
GLSL
21 lines
707 B
GLSL
uniform sampler2D m_ColorMap;
|
|
uniform vec2 m_OverlayOrigin;
|
|
uniform vec2 m_OverlaySize;
|
|
uniform float m_FadePx;
|
|
|
|
in vec2 texCoord;
|
|
out vec4 outFragColor;
|
|
|
|
void main() {
|
|
vec4 col = texture(m_ColorMap, texCoord);
|
|
|
|
// Abstand des Fragments vom nächsten Overlay-Rand in Screen-Pixeln
|
|
float distL = gl_FragCoord.x - m_OverlayOrigin.x;
|
|
float distR = (m_OverlayOrigin.x + m_OverlaySize.x) - gl_FragCoord.x;
|
|
float distB = gl_FragCoord.y - m_OverlayOrigin.y;
|
|
float distT = (m_OverlayOrigin.y + m_OverlaySize.y) - gl_FragCoord.y;
|
|
float edgeFade = clamp(min(min(distL, distR), min(distB, distT)) / m_FadePx, 0.0, 1.0);
|
|
|
|
outFragColor = vec4(col.rgb, col.a * edgeFade);
|
|
}
|