GUI: new osc renderer, part 31

texelFetch
This commit is contained in:
tildearrow 2024-02-23 03:49:59 -05:00
parent 7a2e26c6e5
commit f1005afbeb

View file

@ -173,19 +173,19 @@ const char* sh_oscRender_srcF=
" float valmax=-1024.0;\n"
" float valmin=1024.0;\n"
" for (float x=floor(fur_fragCoord.x-uLineWidth); x<=xMax; x+=1.0) {\n"
" float val=texture(oscVal,x*oneStep).x;\n"
" float val=texelFetch(oscVal,int(x),0).x;\n"
" if (val>valmax) valmax=val;\n"
" if (val<valmin) valmin=val;\n"
" }\n"
" if ((fur_fragCoord.y-uLineWidth)>valmax*uResolution.y) discard;\n"
" if ((fur_fragCoord.y+uLineWidth)<valmin*uResolution.y) discard;\n"
" float slope=sqrt(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 xRight=ceil(fur_fragCoord.x+uLineWidth);\n"
" for (float x=max(0.0,floor(fur_fragCoord.x-uLineWidth)); x<=xRight; x+=slopeDiv) {\n"
" float val0=texture(oscVal,floor(x)*oneStep).x*uResolution.y;\n"
" float val1=texture(oscVal,floor(x+1.0)*oneStep).x*uResolution.y;\n"
" float val=mix(val0,val1,fract(x));\n"
" float val0=texelFetch(oscVal,int(x),0).x;\n"
" float val1=texelFetch(oscVal,int(x)+1,0).x;\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"
" }\n"
" if (slope>1.0) {\n"