pulled emboss effect

This commit is contained in:
itsmattkc
2019-02-21 00:31:26 -08:00
parent f4668e317a
commit 74a5aa2a7d
2 changed files with 54 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
/* Original source code: https://www.youtube.com/watch?v=I23zT7iu_Y4
Adapted */
varying vec2 vTexCoord;
uniform vec2 resolution;
uniform sampler2D tex;
uniform float contrast100;
uniform float level;
uniform bool invert;
uniform bool hslmode; // luminance is 2*V
void main() {
float contrast = contrast100 / 100.0;
vec2 onePixel = vec2(floor(level) / resolution.x, floor(level) / resolution.y); // calculating the size of one pixel on the screen for the current resolution
vec3 color = vec3(.5); // initialize color with half value on all channels
if (invert) {
color += texture2D(tex, vTexCoord - onePixel).rgb * contrast;
color -= texture2D(tex, vTexCoord + onePixel).rgb * contrast;
} else {
color -= texture2D(tex, vTexCoord - onePixel).rgb * contrast;
color += texture2D(tex, vTexCoord + onePixel).rgb * contrast;
}
// original color
vec4 color0 = texture2D(tex,vTexCoord);
// grayscale
float gray = (color.r + color.g + color.b) / (hslmode ? 3.0 : 1.5);
//self-multiply
color = color0.rgb * gray;
gl_FragColor = vec4(color * color0.a, color0.a);
}
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<effect name="Emboss" category="Stylize">
<row name="Contrast">
<field type="double" min="0" default="50" max="100" id="contrast100"/>
</row>
<row name="Resolution">
<field type="double" min="0" default="1" max="100" id="level"/>
</row>
<row name="HSL mode">
<field type="bool" min="0" default="100" max="100" id="hslmode"/>
</row>
<row name="Invert">
<field type="bool" min="0" default="100" max="100" id="invert"/>
</row>
<shader vert="common.vert" frag="emboss.frag"/>
</effect>