<URL: http://bugs.freeciv.org/Ticket/Display.html?id=35908 >
The current method of drawing deep oceans is basically unworkable. To
keep the hand-drawn coasts while integrating deep ocean, multiple layers
of corner-cell sprites are used and overlayed on top of each other. But
because these sprites only have boolean matches, it will always be drawn
badly when coast, ocean, and deep ocean all meet at the same corner.
After some discussion with Hogne and Daniel on RT, I have a plan to fix
this by adding a third drawing layer.
Layer 0 will contain land, ocean, and deep ocean. This is fully-matched
sprites: so 3^4 = 81 sprites are needed. These 81 sprites can be
hand-edited to look extremely nice (this is identical to how civ3
Layer 1 will contain basic land terrains, with blending. There's just
one sprite per land terrain, less than 10 total (as it is done now).
Layer 2 will contain the land terrain overlays, with binary matching
against adjacent terrains. This takes 16 sprites per terrain type
(mountains/hills/forest/jungle), just as is done now.
The only real change is in layer 0. Here instead of getting 32
quarter-sized sprites, we will have 81 full-sized sprites. And each of
these 81 sprites gets drawn over the *corner* where 4 tiles meet. The
initial graphics can be generated from the current graphics, but will
take some editing to fix up the combinations that are not currently covered.
More to come.
Freeciv-dev mailing list