GUI: new osc renderer, part 33
WHAT THE HELL
This commit is contained in:
parent
656107f5ae
commit
e133cc4d28
|
@ -169,7 +169,6 @@ const char* sh_oscRender_srcF=
|
||||||
"void main() {\n"
|
"void main() {\n"
|
||||||
" float alpha=0.0;\n"
|
" float alpha=0.0;\n"
|
||||||
" float xMax=ceil(fur_fragCoord.x+uLineWidth);\n"
|
" float xMax=ceil(fur_fragCoord.x+uLineWidth);\n"
|
||||||
" float oneStep=1.0/2048.0;\n"
|
|
||||||
" float valmax=-1024.0;\n"
|
" float valmax=-1024.0;\n"
|
||||||
" float valmin=1024.0;\n"
|
" float valmin=1024.0;\n"
|
||||||
" for (float x=floor(fur_fragCoord.x-uLineWidth); x<=xMax; x+=1.0) {\n"
|
" for (float x=floor(fur_fragCoord.x-uLineWidth); x<=xMax; x+=1.0) {\n"
|
||||||
|
@ -180,16 +179,17 @@ const char* sh_oscRender_srcF=
|
||||||
" if ((fur_fragCoord.y-uLineWidth)>valmax*uResolution.y) discard;\n"
|
" if ((fur_fragCoord.y-uLineWidth)>valmax*uResolution.y) discard;\n"
|
||||||
" if ((fur_fragCoord.y+uLineWidth)<valmin*uResolution.y) discard;\n"
|
" if ((fur_fragCoord.y+uLineWidth)<valmin*uResolution.y) discard;\n"
|
||||||
" float slope=abs(valmax-valmin)*uResolution.y;\n"
|
" float slope=abs(valmax-valmin)*uResolution.y;\n"
|
||||||
" float slopeDiv=min(1.0,1.0/ceil(slope));\n"
|
" float slopeMul=pow(2.0,ceil(log2(ceil(slope))));\n"
|
||||||
|
" float slopeDiv=1.0/slopeMul;\n"
|
||||||
" float xRight=ceil(fur_fragCoord.x+uLineWidth);\n"
|
" float xRight=ceil(fur_fragCoord.x+uLineWidth);\n"
|
||||||
" for (float x=max(0.0,floor(fur_fragCoord.x-uLineWidth)); x<=xRight; x+=slopeDiv) {\n"
|
" for (float x=max(0.0,floor(fur_fragCoord.x-uLineWidth)); x<=xRight; x+=slopeDiv) {\n"
|
||||||
" float val0=texelFetch(oscVal,int(x),0).x;\n"
|
" float val0=texelFetch(oscVal,int(x),0).x;\n"
|
||||||
" float val1=texelFetch(oscVal,int(x)+1,0).x;\n"
|
" float val1=texelFetch(oscVal,int(x)+1,0).x;\n"
|
||||||
" float val=mix(val0,val1,fract(x))*uResolution.y;\n"
|
" float val=mix(val0,val1,fract(x))*uResolution.y;\n"
|
||||||
" alpha+=clamp(uLineWidth-distance(vec2(fur_fragCoord.x,fur_fragCoord.y),vec2(x,val)),0.0,1.0);\n"
|
" alpha+=max(uLineWidth-distance(vec2(fur_fragCoord.x,fur_fragCoord.y),vec2(x,val)),0.0);\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" if (slope>1.0) {\n"
|
" if (slope>1.0) {\n"
|
||||||
" fur_FragColor = vec4(uColor.xyz,uColor.w*clamp(alpha/uLineWidth,0.0,1.0));\n"
|
" fur_FragColor = vec4(uColor.xyz,uColor.w*clamp(alpha/(uLineWidth*(uLineWidth*2.0+log2(slopeMul))),0.0,1.0));\n"
|
||||||
" } else {\n"
|
" } else {\n"
|
||||||
" fur_FragColor = vec4(uColor.xyz,uColor.w*clamp(alpha/uLineWidth,0.0,1.0));\n"
|
" fur_FragColor = vec4(uColor.xyz,uColor.w*clamp(alpha/uLineWidth,0.0,1.0));\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
|
|
Loading…
Reference in a new issue