diff options
author | Ansis Brammanis <brammanis@gmail.com> | 2016-12-14 13:54:45 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-12-21 15:46:36 -0800 |
commit | ebd241363d5c926d471559208f391190666febb9 (patch) | |
tree | 63e1324ae911aa760a6b010904dd43b8f660b7d2 | |
parent | 9dd0cdbc5768d3bdd6e2805523ee9281c0699506 (diff) | |
download | qtlocation-mapboxgl-ebd241363d5c926d471559208f391190666febb9.tar.gz |
[core] fix text blurriness at different FOVs
ported from -js: c52a09639ceeeb809cd837360993df9c45b45420
This replaces a hardcoded shader approximation with a more correct,
FOV-dependent one.
`gl_Position.w - 0.5`
is replaced with
`gl_Position.w / tan(fov)`
The `/ tan(fov)` is handled by multiplying `1 / tan(fov)` into `u_gamma`
outside the shader.
I think `- 0.5` was just chosen as something that looked right for the
default fov.lease enter the commit message for your changes. Lines starting
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | src/mbgl/programs/symbol_program.cpp | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/package.json b/package.json index c32bdd8032..c537648251 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "ejs": "^2.4.1", "express": "^4.11.1", "lodash": "^4.16.4", - "mapbox-gl": "mapbox/mapbox-gl-js#ab836206d415ca3a74257a3066d11a54ab2838cb", + "mapbox-gl": "mapbox/mapbox-gl-js#c52a09639ceeeb809cd837360993df9c45b45420", "mapbox-gl-style-spec": "mapbox/mapbox-gl-style-spec#49e8b407bdbbe6f7c92dbcb56d3d51f425fc2653", "mapbox-gl-test-suite": "mapbox/mapbox-gl-test-suite#da53a81453068f4c2b440f9077d6bd5e7e14ff3d", "mkdirp": "^0.5.1", diff --git a/src/mbgl/programs/symbol_program.cpp b/src/mbgl/programs/symbol_program.cpp index 8c9c34210c..71b45ad4fc 100644 --- a/src/mbgl/programs/symbol_program.cpp +++ b/src/mbgl/programs/symbol_program.cpp @@ -75,9 +75,9 @@ static SymbolSDFProgram::UniformValues makeSDFValues(const style::SymbolProperty // The default gamma value has to be adjust for the current pixelratio so that we're not // drawing blurry font on retina screens. const float gammaBase = 0.105 * values.sdfScale / values.paintSize / pixelRatio; - const float gammaScale = values.pitchAlignment == AlignmentType::Map + const float gammaScale = (values.pitchAlignment == AlignmentType::Map ? 1.0 / std::cos(state.getPitch()) - : 1.0; + : 1.0) / state.getAltitude(); return makeValues<SymbolSDFProgram::UniformValues>( values, |