Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

[Частично решено] Ну как с освещением кривым бороться?

Тема в разделе "Разработка плагинов для новичков", создана пользователем Dereku, 2 июл 2016.

  1. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    2016-07-02_09.16.06.png

    Уж совсем надоели эти чёрные пятна.
    Путём несложных (нет, сложных) процедур проб и ошибок выяснил, что само освещение относительно чанка работает хорошо (даже замечательно), но при применении света на блоки страдает соседний чанк.
    Есть у кого ниб идеи (или код?) как исправить освещение? Можно даже самые медленные решения (этот генератор генерирует чанк за 2-16 ms, что невероятно медленно), скорость мне не особо важна.
     
  2. Хостинг MineCraft
    <
  3. DiamondDen

    DiamondDen Активный участник Пользователь

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    Последнее редактирование: 2 июл 2016
  4. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Он давно не работает.

    И помещай изображения под спойлер.
     
  5. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Чанти тут вообще не причем. Это все рендер на клиенте.
     
  6. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Да не совсем так. Конечно, можно исправлять освещение со стороны клиента, но всё равно оно так же рассчитывается на стороне сервера.
     
  7. MrTrojan

    MrTrojan Активный участник Пользователь

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
  8. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Спасибо, капитан очевидность. Я там уже был, но годного нет ничего. Так что возвращайся туда, откуда пришёл.
     
  9. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    По идее нужно заставить сервер пересчитать освещение заново.
    Когда ставишь блок вручную в неправильном месте, оно пересчитывается.
    Мб циклом по всем воздушным блокам, прилегающим к поверхностям, ставить факел на 1 тик и удалять его после? ))
     
  10. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Для начала нужно узнать, что там не верное освещение.
    Да и я привык лечить болезнь, а не симптомы.
    Хотя, надо будет поиграться с перезагрузкой чанков после initLighting.
     
  11. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
  12. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Есть. Только есть проблема одна. Оно рассчитывает свет от определённой позиции.[DOUBLEPOST=1468705567,1467618347][/DOUBLEPOST]
    А всё таки медленным оказался не генератор мира (который на моей пеке спокойно выдаёт 80 чанков в одну секунду), а это самое ванильное освещение.
    Вообще обидно, что угрохал три дня на оптимизацию скорости генератора, а виноват Mojang.
     
    Последнее редактирование: 17 июл 2016
  13. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Ну так что порешали-то?
    Удивительно, что проблема на стороне сервера. Это даёт шанс на исправление дичи без напряга клиентов... Но вообще, чую, тут всё очень даже непросто. Сами Можанги, вон, кучу лет убить этот баг не могут. Или не хотят?
     
  14. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Ну че. Реветь как девочка.
    С 1.4, емнип, освещение на стороне сервера. Хотя клиент тоже зачем то считает. Может уже и нет, не в курсе.
    Считать свет - куча математических вычислений. Это надо знать алгебру и геометрию.[DOUBLEPOST=1468880610,1468880404][/DOUBLEPOST]Кстати, чёрных пятен нет на craftbukkit'e, в отличии от spigot.
     
  15. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Ну так правильно, не передаёт же сервер освещённость ВСЕХ блоков воздуха (на сам деле я уже ни в чём не уверен)? Что-то мне кажется, что баг этот именно на клиенте.
    Хотя инфа про CB и Spigot говорит об обратном. Возможно у тебя просто отключены рандомные обновления света? На CB-то их оффать нельзя вроде.
    Это намёк на то, что кодеры Майнкрафта не могут в математику? Или на то, что мы сами ничего не поделаем без особой анальной боли?
     
    Последнее редактирование: 19 июл 2016
  16. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Как раз были включены. Но суть не в этом, мне и не плохо сидеть на craftbukkit'e (пачти накатил нужные и вперёд), само освещение медленное, если чанк (почти) пуст.
    Подумываю расширить Chunk методом isEmpty(), который будет говорить пуст ли чанк или нет, чтобы не считать мусор лишний раз.
    Это намёк на то, что нужно делать лучше.
     
  17. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Есть же уже. Пустые чанки не сохраняются. Ну, либо мне это приснилось...
    Другое дело, что освещение и вправду просчитываться может...
    Ну тогда я вообще ничего не понимаю. В Vanilla этот баг есть, в CraftBukkit отсутствует, а в Spigot опять вылезает? Если действительно так, то нас окружают одни говнокодеры...
     
  18. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Вот это я и буду выяснять.
    В ванилле не смотрел - это надо мир туда перекидывать. Кстати, тоже надо проверить.
     
  19. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Оптипись о результате, если таковой будет. Тоже интересует тема освещения...
     
  20. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    //Если что, кинул не до конца сгенерированный мир островков.
    2016-07-19_06.00.17.png
    Ну ладно, сейчас освещение вполне таки годное. Правда, в ущерб производительности.
    2016-07-19_06.14.16.png
     
    Последнее редактирование: 19 июл 2016
  21. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Что ты сделал-то? Или это как раз ваниль?
     

Поделиться этой страницей