webbukkit / dynmap

A set of Minecraft mods that provide a real time web-based map system for various Minecraft server implementations.
https://www.reddit.com/r/Dynmap/
Apache License 2.0
2.05k stars 419 forks source link

Full HD-resolution in only some regions #2811

Closed mazunki closed 3 years ago

mazunki commented 4 years ago

Scenario

I have one world, with three different maps. I have some zones (two of them) which I want to have in full HD.

Current settings

My worlds are as following, added manually:

$ cat plugins/dynmap/worlds.txt
worlds:
  - name: LaMarinaBaixa
    title: "La Marina Baixa"
    maps: 
      - class: org.dynmap.hdmap.HDMap
        name: flat
        title: "Para terraplanistas"
        prefix: flat
        colorscheme: default
        perspective: iso_S_90_hires
      - class: org.dynmap.hdmap.HDMap
        name: surface
        title: "3D waifus are inferior"
        prefix: t
        perspective: iso_SE_30_hires
        shader: stdtexture
        lighting: shadows
        mapzoomin: 4
      - class: org.dynmap.hdmap.HDMap
        name: surface2
        title: "3D nice butt bro"
        prefix: rear
        perspective: iso_NW_30_hires
        shader: stdtexture
        lighting: shadows
        mapzoomin: 4
  - name: LaMarinaBaixa_nether
    title: "La Marina Alta"
    enabled: false
  - name: LaMarinaBaixa_the_end
    title: "Altea en Agosto"
    enabled: false

With the following perspectives. Setting the custom perspective scale setting to 64 here gives me pixel perfect rendering, but there are two problems with this: It takes forever, and the storage space is a consideration.

Therefore, I reduced the quality drastically, and while you can still see the shapes of the building, it is not beautiful.

$ cat plugins/dynmap/custom-perspectives.txt
perspectives:
  # Default - used if bad or no perspective name supplied
  - class: org.dynmap.hdmap.IsoHDPerspective 
    name: default
    azimuth: 135
    inclination: 60
    scale: 4

  - class: org.dynmap.hdmap.IsoHDPerspective 
    name: iso_SE_60_hires
    azimuth: 135
    inclination: 60
    scale: 4 

  - class: org.dynmap.hdmap.IsoHDPerspective 
    name: iso_NW_60_hires
    azimuth: 315
    inclination: 60
    scale: 4 

# Low angle perspectives (30 degrees)
  - class: org.dynmap.hdmap.IsoHDPerspective 
    name: iso_SE_30_hires
    azimuth: 135
    inclination: 30
    scale: 4

  - class: org.dynmap.hdmap.IsoHDPerspective 
    name: iso_NW_30_hires
    azimuth: 315
    inclination: 30
    scale: 4

# Vertical perspectives (90 deg)
  - class: org.dynmap.hdmap.IsoHDPerspective 
    name: iso_S_90_hires
    azimuth: 180
    inclination: 90
    scale: 2 

I tried adding a marker to one of the areas, to test it, as I read somewhere that you could apply a maker setting called boostzoom, allowing certain areas to have a privilege.

The following command seems to do nothing, as I don't see the setting being applied to the marker.yml file: /dmarker updatearea id:barbariansBase set:Barbarians boostzoom:64

marker.yml:

%YAML 1.1
---
icons: {
    }
sets:
    offline_players:
        hide: true
        circles: {
            }
        deficon: default
        areas: {
            }
        label: Offline
        markers: {
            }
        lines: {
            }
        layerprio: 0
        minzoom: 0
    markers:
        hide: false
        circles: {
            }
        deficon: default
        areas: {
            }
        label: Markers
        markers: {
            }
        lines: {
            }
        layerprio: 0
    Barbarians:
        hide: false
        circles: {
            }
        deficon: default
        areas:
            barbiansBase:
                fillColor: 11141171
                world: LaMarinaBaixa
                markup: false
                ytop: 64.0
                fillOpacity: 0.2
                x:
                - -606.0
                - -410.0
                strokeWeight: 3
                z:
                - 698.0
                - 407.0
                label: AvenidaDeLaNucia
                ybottom: 64.0
                strokeColor: 16711680
                strokeOpacity: 0.0
        label: Barbarians
        markers: {
            }
        lines: {
            }
        layerprio: 0
playersets: {
    }

In conclusion

How can I set up a specific region of my world to have HD, setting the default value for the rest of the world to be poor quality? I don't mind purging all my rendered map or settings.

FedUpWith-Tech commented 4 years ago

you can do this with the low_boost_hi or any of the boost settings in the config. The wiki will be updated soon on how to do this clearly but it is doable