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 /src | |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/programs/symbol_program.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
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, |