From 93c09633eec965fce3cf279021a95594b80e45e8 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Fri, 14 Oct 2022 16:04:04 +0900 Subject: [PATCH] examples/shader: bug fix: wrong function usages The tex-coord should have been modified by the source texture region/size, rather than the destination texture's. --- examples/shader/crt.go | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/shader/crt.go b/examples/shader/crt.go index 72ce64fce..262ec0ddc 100644 --- a/examples/shader/crt.go +++ b/examples/shader/crt.go @@ -23,37 +23,37 @@ var ScreenSize vec2 func Fragment(position vec4, texCoord vec2, color vec4) vec4 { const ( - BLURSCALEX = 0.45 - LOWLUMSCAN = 5.0 - HILUMSCAN = 10.0 - BRIGHTBOOST = 1.25 - MASK_DARK = 0.25 - MASK_FADE = 0.8 + blurScaleX = 0.45 + lowLumScan = 5.0 + hiLumScan = 10.0 + BrightBoost = 1.25 + maskDark = 0.25 + maskFade = 0.8 ) pos := texCoord - origin, size := imageDstRegionOnTexture() + origin, size := imageSrcRegionOnTexture() pos -= origin pos /= size - maskFade := 0.3333 * MASK_FADE - invDims := 1.0 / imageDstTextureSize().xy - p := pos * imageDstTextureSize() + maskFade := 0.3333 * maskFade + invDims := 1.0 / imageSrcTextureSize().xy + p := pos * imageSrcTextureSize() i := floor(p) + 0.50 f := p - i p = (i + 4.0*f*f*f) * invDims - p.x = mix(p.x, pos.x, BLURSCALEX) + p.x = mix(p.x, pos.x, blurScaleX) Y := f.y * f.y YY := Y * Y whichmask := fract(pos.x * -0.4999) mask := 1.0 if whichmask < 0.5 { - mask -= MASK_DARK + mask -= maskDark } clr := imageSrc2At(p*size + origin).rgb - scanLineWeight := (BRIGHTBOOST - LOWLUMSCAN*(Y-2.05*YY)) - scanLineWeightB := 1.0 - HILUMSCAN*(YY-2.8*YY*Y) + scanLineWeight := (BrightBoost - lowLumScan*(Y-2.05*YY)) + scanLineWeightB := 1.0 - hiLumScan*(YY-2.8*YY*Y) return vec4(clr.rgb*mix(scanLineWeight*mask, scanLineWeightB, dot(clr.rgb, vec3(maskFade))), 1.0) }