GUI: new osc renderer, part 12

This commit is contained in:
tildearrow 2024-02-14 04:09:24 -05:00
parent 4242e79144
commit 523a290374
5 changed files with 103 additions and 35 deletions

View file

@ -164,19 +164,27 @@ const char* sh_oscRender_srcF=
"out vec4 fur_FragColor;\n"
"void main() {\n"
" vec2 uv = fur_fragCoord/uResolution;\n"
" vec2 tresh = vec2(uLineWidth)/uResolution;\n"
" uv.y *= 2.0;\n"
" vec2 tresh = vec2(1.0,1.0)/uResolution;\n"
" float x1 = uv.x-uAdvance;\n"
" float x2 = uv.x;\n"
" float x3 = uv.x+uAdvance;\n"
" float val1 = texture(oscVal,x2).x;\n"
" float val2 = texture(oscVal,x2).x;\n"
" float val3 = texture(oscVal,x3).x;\n"
" float valmax = max(val2,val3);\n"
" float valmin = min(val2,val3);\n"
" float vald = abs(valmax-valmin);\n"
" float alpha = 1.0-abs(uv.y-val2)/max(tresh.y,vald);\n"
" if (vald>(1.0/uResolution.y)) {\n"
" fur_FragColor = vec4(1.0,0.0,0.0,uColor.w*alpha);\n"
" float valmax = max(max(val1,val2),val3);\n"
" float valmin = min(min(val1,val2),val3);\n"
" float slope = abs(valmax-valmin)*uResolution.y*0.5;\n"
" float alpha = 0.0;\n"
" if (uv.y>=valmin) {\n"
" alpha=valmax*uResolution.y*0.5-fur_fragCoord.y+uLineWidth*0.75;\n"
" } else {\n"
" fur_FragColor = vec4(uColor.xyz,uColor.w*alpha);\n"
" alpha=fur_fragCoord.y-valmin*uResolution.y*0.5+uLineWidth*0.75;\n"
" }\n"
" if (slope>1.0) {\n"
" fur_FragColor = vec4(uColor.xyz,uColor.w*clamp(alpha,0.0,1.0));\n"
" } else {\n"
" fur_FragColor = vec4(uColor.xyz,uColor.w*clamp(alpha,0.0,1.0));\n"
" }\n"
"}\n";
#endif