diff --git a/js/regl/utils.js b/js/regl/utils.js index e18d619..f1491c2 100644 --- a/js/regl/utils.js +++ b/js/regl/utils.js @@ -59,7 +59,6 @@ const loadImage = (regl, url) => { data, mag: "linear", min: "linear", - flipY: true, }); } })(), diff --git a/shaders/glsl/rainPass.frag.glsl b/shaders/glsl/rainPass.frag.glsl index 10b828c..197b19e 100644 --- a/shaders/glsl/rainPass.frag.glsl +++ b/shaders/glsl/rainPass.frag.glsl @@ -102,13 +102,13 @@ vec3 getBrightness(vec4 raindrop, vec4 effect, float quadDepth, vec2 uv) { vec2 getSymbolUV(float index) { float symbolX = modI(index, glyphTextureGridSize.x); float symbolY = (index - symbolX) / glyphTextureGridSize.x; - symbolY = glyphTextureGridSize.y - symbolY - 1.; return vec2(symbolX, symbolY); } vec2 getSymbol(vec2 uv, float index) { // resolve UV to cropped position of glyph in MSDF texture uv = fract(uv * vec2(numColumns, numRows)); + uv.y = 1.0 - uv.y; // y-flip uv -= 0.5; uv *= clamp(1. - glyphEdgeCrop, 0., 1.); uv += 0.5; diff --git a/shaders/wgsl/rainPass.wgsl b/shaders/wgsl/rainPass.wgsl index b953dfc..5cc3d13 100644 --- a/shaders/wgsl/rainPass.wgsl +++ b/shaders/wgsl/rainPass.wgsl @@ -493,7 +493,7 @@ fn getSymbolUV(symbol : i32) -> vec2 { fn getSymbol(cellUV : vec2, index : i32) -> vec2 { // resolve UV to cropped position of glyph in MSDF texture var uv = fract(cellUV * config.gridSize); - uv.y = 1.0 - uv.y; // WebGL -> WebGPU y-flip + uv.y = 1.0 - uv.y; // y-flip uv -= 0.5; uv *= clamp(1.0 - config.glyphEdgeCrop, 0.0, 1.0); uv += 0.5;