improve brush preview
This commit is contained in:
@@ -63,6 +63,24 @@
|
||||
" return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n"\
|
||||
"}\n"
|
||||
|
||||
#define SHADER_FUNCTION_COLOR \
|
||||
"mediump vec3 brightness3(mediump vec3 c, mediump float val) {\n"\
|
||||
" return c + vec3(val * 2.0 - 1.0);\n"\
|
||||
"}\n"\
|
||||
"mediump vec3 contrast3(mediump vec3 c, mediump float val) {\n"\
|
||||
" val = val * 2.0 - 1.0;\n"\
|
||||
" mediump float factor = ((259.0 / 255.0) * (val + 1.0)) / (1.0 * ((259.0 / 255.0) - val));\n"\
|
||||
" return factor * (c - 0.5) + 0.5;\n"\
|
||||
"}\n"\
|
||||
"mediump float brightness1(mediump float c, mediump float val) {\n"\
|
||||
" return c + (val * 2.0 - 1.0);\n"\
|
||||
"}\n"\
|
||||
"mediump float contrast1(mediump float c, mediump float val) {\n"\
|
||||
" val = val * 2.0 - 1.0;\n"\
|
||||
" mediump float factor = ((259.0 / 255.0) * (val + 1.0)) / (1.0 * ((259.0 / 255.0) - val));\n"\
|
||||
" return factor * (c - 0.5) + 0.5;\n"\
|
||||
"}\n"
|
||||
|
||||
// http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/
|
||||
#define SHADER_FUNCTION_RAND \
|
||||
"highp float rand(mediump vec2 co)\n"\
|
||||
@@ -226,6 +244,9 @@ void App::initShaders()
|
||||
"uniform mediump int blend_mode;\n"
|
||||
"uniform mediump int dual_blend_mode;\n"
|
||||
"uniform mediump vec2 resolution;\n"
|
||||
"uniform mediump vec2 pattern_scale;\n"
|
||||
"uniform mediump float pattern_bright;\n"
|
||||
"uniform mediump float pattern_contr;\n"
|
||||
"uniform bool lock;\n"
|
||||
"uniform bool mask;\n"
|
||||
"uniform bool fragUV2;\n"
|
||||
@@ -236,12 +257,18 @@ void App::initShaders()
|
||||
SHADER_FUNCTION_BLUR
|
||||
SHADER_FUNCTION_BLEND
|
||||
SHADER_FUNCTION_BLEND_STROKE
|
||||
SHADER_FUNCTION_COLOR
|
||||
"void main() {\n"
|
||||
" mediump vec2 uv2 = fragUV2 ? (gl_FragCoord.st / resolution) : uv;\n"
|
||||
" mediump vec4 base = texture(tex, uv2);\n"
|
||||
" mediump vec4 stroke = texture(tex_stroke, uv);\n"
|
||||
" if (use_pattern){\n"
|
||||
" stroke.a *= 1.0 - texture(tex_pattern, uv2 * 5.0).r * pattern_alpha;\n"
|
||||
" mediump float patt = texture(tex_pattern, uv2 * pattern_scale * 10.0).r;\n"
|
||||
" if (pattern_bright != 0.5)\n"
|
||||
" patt = brightness1(patt, pattern_bright);\n"
|
||||
" if (pattern_contr != 0.5)\n"
|
||||
" patt = contrast1(patt, pattern_contr);\n"
|
||||
" stroke.a = mix(stroke.a, stroke.a * patt, pattern_alpha);\n"
|
||||
" }\n"
|
||||
" if (use_dual){\n"
|
||||
" mediump vec4 dual = texture(tex_dual, uv);\n"
|
||||
@@ -453,6 +480,7 @@ void App::initShaders()
|
||||
"}\n";
|
||||
static const char* shader_checkerboard_f =
|
||||
SHADER_VERSION
|
||||
"uniform bool colorize;\n"
|
||||
"in mediump vec2 uv;\n"
|
||||
"out mediump vec4 frag;\n"
|
||||
"void main() {\n"
|
||||
@@ -460,7 +488,8 @@ void App::initShaders()
|
||||
" const mediump vec4 c2 = vec4(0.9, 0.9, 0.9, 1.0);\n"
|
||||
" mediump vec2 c = floor(fract(uv * 10.0) * 2.0);\n"
|
||||
" mediump float alpha = mix(c.x, 1.0 - c.x, c.y);\n"
|
||||
" frag = mix(c1, c2, alpha);\n"
|
||||
" if (colorize) frag = mix(c1, c2, alpha) * vec4(fract(uv.x * 5.0), uv.y, 1.0, 1.0);\n"
|
||||
" else frag = mix(c1, c2, alpha);\n"
|
||||
"}\n";
|
||||
|
||||
static const char* shader_equirect_v =
|
||||
|
||||
Reference in New Issue
Block a user