mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-02-02 22:14:29 +01:00
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.
This commit is contained in:
parent
4395d91c6b
commit
93c09633ee
@ -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)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user