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

  • Автор темы Автор темы Dereku
  • Дата начала Дата начала

Dereku

Старожил
Пользователь
Баллы
173
Имя в Minecraft
_Dereku
2016-07-02_09.16.06.png

Уж совсем надоели эти чёрные пятна.
Путём несложных (нет, сложных) процедур проб и ошибок выяснил, что само освещение относительно чанка работает хорошо (даже замечательно), но при применении света на блоки страдает соседний чанк.
Есть у кого ниб идеи (или код?) как исправить освещение? Можно даже самые медленные решения (этот генератор генерирует чанк за 2-16 ms, что невероятно медленно), скорость мне не особо важна.
 
https://www.spigotmc.org/resources/check-my-inventory-offline-player-support.3742/
a6101e313ff07f146072706df937501e31e74ba4
Оттуда возьми:good::good::good: =D
http://dev.bukkit.org/bukkit-plugins/nolagg/
upload_2016-7-2_9-40-2.png
 
Последнее редактирование:
Чанти тут вообще не причем. Это все рендер на клиенте.
Да не совсем так. Конечно, можно исправлять освещение со стороны клиента, но всё равно оно так же рассчитывается на стороне сервера.
 
По идее нужно заставить сервер пересчитать освещение заново.
Когда ставишь блок вручную в неправильном месте, оно пересчитывается.
Мб циклом по всем воздушным блокам, прилегающим к поверхностям, ставить факел на 1 тик и удалять его после? ))
 
По идее нужно заставить сервер пересчитать освещение заново.
Когда ставишь блок вручную в неправильном месте, оно пересчитывается.
Мб циклом по всем воздушным блокам, прилегающим к поверхностям, ставить факел на 1 тик и удалять его после? ))
Для начала нужно узнать, что там не верное освещение.
Да и я привык лечить болезнь, а не симптомы.
Хотя, надо будет поиграться с перезагрузкой чанков после initLighting.
 
Есть. Только есть проблема одна. Оно рассчитывает свет от определённой позиции.
Можно даже самые медленные решения (этот генератор генерирует чанк за 2-16 ms, что невероятно медленно),
А всё таки медленным оказался не генератор мира (который на моей пеке спокойно выдаёт 80 чанков в одну секунду), а это самое ванильное освещение.
Вообще обидно, что угрохал три дня на оптимизацию скорости генератора, а виноват Mojang.
 
Последнее редактирование:
Ну так что порешали-то?
Удивительно, что проблема на стороне сервера. Это даёт шанс на исправление дичи без напряга клиентов... Но вообще, чую, тут всё очень даже непросто. Сами Можанги, вон, кучу лет убить этот баг не могут. Или не хотят?
 
Ну так что порешали-то?
Ну че. Реветь как девочка.
Удивительно, что проблема на стороне сервера. Это даёт шанс на исправление дичи без напряга клиентов...
С 1.4, емнип, освещение на стороне сервера. Хотя клиент тоже зачем то считает. Может уже и нет, не в курсе.
Сами Можанги, вон, кучу лет убить этот баг не могут. Или не хотят?
Считать свет - куча математических вычислений. Это надо знать алгебру и геометрию.
Кстати, чёрных пятен нет на craftbukkit'e, в отличии от spigot.
 
Хотя клиент тоже зачем то считает. Может уже и нет, не в курсе.
Ну так правильно, не передаёт же сервер освещённость ВСЕХ блоков воздуха (на сам деле я уже ни в чём не уверен)? Что-то мне кажется, что баг этот именно на клиенте.
Хотя инфа про CB и Spigot говорит об обратном. Возможно у тебя просто отключены рандомные обновления света? На CB-то их оффать нельзя вроде.
Считать свет - куча математических вычислений. Это надо знать алгебру и геометрию.
Это намёк на то, что кодеры Майнкрафта не могут в математику? Или на то, что мы сами ничего не поделаем без особой анальной боли?
 
Последнее редактирование:
Ну так правильно, не передаёт же сервер освещённость ВСЕХ блоков воздуха? Что-то мне кажется, что баг этот именно на клиенте.
Хотя инфа про CB и Spigot говорит об обратном. Возможно у тебя просто отключены рандомные обновления света?
Как раз были включены. Но суть не в этом, мне и не плохо сидеть на craftbukkit'e (пачти накатил нужные и вперёд), само освещение медленное, если чанк (почти) пуст.
Подумываю расширить Chunk методом isEmpty(), который будет говорить пуст ли чанк или нет, чтобы не считать мусор лишний раз.
Это намёк на то, что кодеры Майнкрафта не могут в математику? Или на то, что мы сами ничего не поделаем без присутствия анальной боли?
Это намёк на то, что нужно делать лучше.
 
Подумываю расширить Chunk методом isEmpty(), который будет говорить пуст ли чанк или нет, чтобы не считать мусор лишний раз.
Есть же уже. Пустые чанки не сохраняются. Ну, либо мне это приснилось...
Другое дело, что освещение и вправду просчитываться может...
Как раз были включены.
Ну тогда я вообще ничего не понимаю. В Vanilla этот баг есть, в CraftBukkit отсутствует, а в Spigot опять вылезает? Если действительно так, то нас окружают одни говнокодеры...
 
Оптипись о результате, если таковой будет. Тоже интересует тема освещения...
 
нас окружают одни говнокодеры...
//Если что, кинул не до конца сгенерированный мир островков.
2016-07-19_06.00.17.png
Ну ладно, сейчас освещение вполне таки годное. Правда, в ущерб производительности.
2016-07-19_06.14.16.png
 
Последнее редактирование:
Назад
Верх