GUI: new osc renderer, part 12
This commit is contained in:
parent
4242e79144
commit
523a290374
5 changed files with 103 additions and 35 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue