BlueMap-Minecraft / BlueMap

A Minecraft mapping tool that creates 3D models of your Minecraft worlds and displays them in a web viewer.
https://bluecolo.red/bluemap
MIT License
1.76k stars 114 forks source link

Blank spots, streaks and squares on rendered map #563

Closed pschichtel closed 6 days ago

pschichtel commented 1 week ago

What i did / Steps to reproduce

This is the main world of our minecraft server (https://map.cubeisland.de), the world was originally created with an early version fo Sponge 8.x on MC 1.16 if I'm not mistaken and I guess a large portion of the chunks has been generated in that period.

As you see in screenshot below, the world is rendered with 4 interesting properties:

  1. many small black splits (1 or a few chunks, multiple per region), distributed homogeneously over the map in a random pattern
  2. blacked out quasi squares also distributed homogeneously over the map in a random pattern, but not super many of them
  3. long streaks of blacked out chunks going through the entire map mostly going north/south
  4. within the quasi-squares and in the inside of the large area in the center enclosed by the streaks, there are basically no black spots

image

another screenshot with our region and border markers:

image

We bluemap purged our rendered worlds after the 5.1 upgrade, but I think this also happened before 5.1.

The overworld is the only one that shows these issues, nether and the end are not affected. We tried going to these black spots, modify the chunks (place a black end remote it again) and also run a force-update of the region. In some places it helped, in most cases it seemed to move the issue around. We purged the world twice and rerendered it, but it did not help. I think after rerendering the same spots were affected, but not entirely sure.

Context

BlueMap Version: 5.1 on Sponge (API 12 snapshot build on MC 1.21), no mods

It's running in a container within a kubernetes cluster, the map is delivered by an nginx, map data is delivered as files, marker and player requests are routed to the plugin.

The plugin rendering the region and border markers: https://github.com/CubeEngine/CubeEngine/tree/api-12/bluemapplus/src/main/java/org/cubeengine/module/bluemapplus

Nothing of interest has been logged I think.

If necessary I can provide a complete copy of the world, but it's large (>5gig compressed). Send me an email (in my profile), then I can provide you a download link.

pschichtel commented 1 week ago

@faithcaio did I miss anything?

TechnicJelle commented 1 week ago

While BlueMap GitHub Issues aren't really a place for support (the Discord is more suitable for that), I can still link you to this guide that I have written that should hopefully help you fix this issue: https://bluemap.bluecolored.de/community/FixLighting.html

This is probably due to those chunks being the border between different Minecraft versions of chunks.

If you have more questions, I implore you to ask them in the Discord, because helping people is much easier and quicker over there than here. Good luck!

pschichtel commented 1 week ago

@TechnicJelle thanks for the link, I'll give that a shot. But it seems it should have helped to walk around the chunks, but it didn't always help.

TechnicJelle commented 1 week ago

Yes, loading the chunks in-game forces the server to upgrade and fix them. They should indeed show up on the map with the next update, then. It's odd if it didn't. Perhaps the black spaghetti just shifted positions a bit? Like, the loaded chunks got fixed, but now the chunks around that got borked, while they were initially still a valid, if older, MC version chunk.

pschichtel commented 1 week ago

yeah I'll give chunky a shot in the next days and report back.

TBlueF commented 1 week ago
Adding what has already been said: BlueMap 5.x has a command /bluemap debug map <map> [x z] which will give some debug-info about the chunk and map-tile at the given position.. Interesting for this might be the tile-state in one of the dark regions which should show one of: tile-state description
bluemap:unknown bluemap never attempted to render this map-tile
bluemap:rendered bluemap thinks it rendered this map-tile and there was no problem
bluemap:not-generated one of the chunks needed to render this map-tile does not exist in the region-file
bluemap:missing-light one of the chunks needed to render this map-tile does not have its Status field set to minecraft:full
bluemap:chunk-error bluemap failed to load/parse one of the chunks needed to render this map-tile (error while loading chunk)
bluemap:render-error some error occurred while rendering this map-tile

I would expect tile-state: bluemap:missing-light here and loading the chunks either ingame or with chunky should cause minecraft to upgrade them to Status: minecrtaft:full again and fix the issue :)

The long "streaks" at the border between old-version and new-version chunks are a known problem when switching minecraft-versions, but i am a little surprised about the "many small black splits".. not quite sure what might cause them 🤔

Faithcaio commented 1 week ago

We had quite a lot (but not all) of cases where the single black chunks were located on a village. Maybe it has smth. to do with structures.

Perhaps the black spaghetti just shiften positions a bit? Like, the loaded chunks got fixed, but now the chunks around that got borked, while they were initially still a valid

Thats exactly what happened.

pschichtel commented 6 days ago

Triggering generation on all existing chunks cleared it up. @TechnicJelle your guide seems helpful, but Chunky will also generate new chunks (which we didn't want) and Light Cleaner is Spigot only, so we've quickly built a small command to walk over only the existing chunks.

TechnicJelle commented 6 days ago

If you follow my guide properly, Chunky will not generate more chunks. It will only go over the chunks that already have been generated in some capacity, and make the server fix them. That's what the "pattern world" is for.

But I'm glad to hear you've found a solution :)

pschichtel commented 6 days ago

Oh true, we ended up reading the chunky documentation instead of you guide and didn't find that command apparently. Sorry for the confusion :D It's only a few lines of code in sponge, so no big deal.

TechnicJelle commented 6 days ago

It's a pretty new feature of Chunky

Although it is certainly documented: https://github.com/pop4959/Chunky/wiki/Patterns#world