This tends to make it difficult to see roads that lie "in the shadow" (compare the Cruiser screenshots with the attached samples from my branch build).
With the theme extension for selecting/reserving a painting level, prerendered tiles could be spliced into the rendering just as well as internally rendered ("the vector way"). But if they come from a remote source one would want to render an unshaded version and then repaint once the data arrives, but that amount tile-management is beyond my current understanding of mapsforge internals.
That is basically what created the attached screenshots.
Also, #2 on Android currently does not look nice on high zoom levels, as the default bitmap canvas seems to lack any form of interpolation when upscaling. I try to do API level switch to do this part of painting in renderscript on API 17+.
So far I just toil on in the branch, occasionally merging from master, and would not send a PR before reaching at least "good enough". If WIP PR help, making them is sure easier than reading ;)
even when themes would be rewritten to look good under strong blending, they should still work well in absence of hill shading.
It's true, the PR I put together today touches quite a few files.
The existing architecture does quite a good job of forcing changes to stay platform-agnostic. (But I often felt very tempted to do a separate, unrelated round of refactoring to eradicate all static references to GraphicsFactory instances and methods, I really believe that it should be something that a client application should be able to override)
--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-dev+unsubscribe@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.
To view this discussion on the web visit https://groups.google.com/d/msgid/mapsforge-dev/98e3e454-3b3c-856d-3b8d-2ddea4b5b461%40gmail.com.
Sorry for the late reply, I haven't disapeared, just changed pace.
> - The area patterns appear with wrong color in zooms <13
Red military zones (default theme)? Somehow it seems like,
despite the switch back to the previous composite at the end of
shadeBitmap(), the AwtLuminanceShadingComposite influences the way
the drawing of the
<area fill="#15DF003F" /> lines
is applied (the switch at zoom 13 happens because of the
additional layer of military.png that is painted right on top of
them). The easy way out would be sticking to alpha compositing,
which would be advisable for consistency with android anyways.
Desaturation isn't too bad at low magnitude, and if we generally
add a dummy flat shading where hill data is not available, or
deactivated for the zoom level, themes could compensate by
increasing saturation (without getting too colorful in absence of
hill data/configuration).
> - At large zooms there are artifacts at tile borders
I noticed the visible borders too and think that they are caused
by the upscale blending not using the shading pixels outside the
clip region (the drawBitmap method used on android explicitly
mentions clamp mode in its documentation and the AWT result looks
consistent with that too). Maybe rounding to full shading pixels
(which are huge on high zoom) also plays a role, but i'm not sure
of that. On AWT, both issues should be avoidable by using
matrix-defined scaling. Then only shading tile borders would be
visible (typically full degrees latitude/longitude), which is rare
at high zoom.
On Android, I would probably need a larger-than-tile temporary
bitmap for upscaling at a similar quality level. But I think this
could only be efficient with rendering workers (including
platform-specific state) that are reused between jobs. I think
this could also reduce allocations elsewhere. Maybe it could be as
simple as reusing CanvasRasterer instances? (after taking care for
proper state reset)
--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.