[marble] [Bug 366245] height value used in globe projection leads to blurred images

Torsten Rahn bugzilla_noreply at kde.org
Sat Apr 22 14:54:19 BST 2023


https://bugs.kde.org/show_bug.cgi?id=366245

Torsten Rahn <rahn at kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rahn at kde.org

--- Comment #4 from Torsten Rahn <rahn at kde.org> ---
Yes that is a conceptual problem.
Currently we have several mechanisms in place that try to allow for "crisp"
rendering across projections. 
On one hand there is the "discrete" property that can be specified in the
maptheme's DGML-file in order to have zooming via the mouse-wheel "locked" to
the "best values":

<dgml xmlns="http://edu.kde.org/marble/dgml/2.0">
  <document>
    <head>
      <name>OpenStreetMap</name>
      <zoom>
        <discrete> true </discrete>
      </zoom>
    </head>

In addition to this we have the option to zoom via "+" and "-" which also
"locks" to the "best values".

The best values get determined via the methods 

int TextureLayer::preferredRadiusCeil( int radius ) const

and 

int TextureLayer::preferredRadiusFloor( int radius ) const

Their implementation returns "best values" which are chosen relative to the
tile dimensions (and their inherent projection which is Mercator for many and
Equirectangular for others). This means that the most "crisp" rendering can be
achieved if the user-selected projection matches the actual tile-projection. 
For all other projections (like spherical) the rendering will differ a bit
(resulting in an "apparent height difference" as you described it). A "better"
implementation might apply another projedtion-dependent multiplication factor
to the "preferredRadiusFloor/Ceil"-result. However that requires some
additional "tinkering".

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Marble-bugs mailing list