[Ответ дан] [клиент/не наше]Как работает освещение

Статус
В этой теме нельзя размещать новые ответы.

fewflare

Новичок
Регистрация
22.05.2020
Сообщения
33
Minecraft
fewflare
Когда я создавал приват, я специально делал так, чтобы он был как можно точнее вписан в чанки. Разумеется, идеально сделать нельзя (максимальный размер привата не кратен размеру чанка), но чтобы хоть +- симетрично было. В итоге у меня пещера - кубоид 3 на 3 чанка, с двух сторон стены пещеры вплотную прилегают к границам чанка, а с двух других находятся на расстоянии в 1 блок.
С двух сторон так:

2021-04-27-20-15-30.png


С двух других сторон так:

2021-04-27-20-16-06.png

Я сделал платформу в центре пещеры и поставил на ней точку атласа. При перемещении на неё у меня не прогружается до конца освещение на двух сторонах, которые вплтную к границе чанка (первый скрин в спойлере выше). Выглядит эта тень вот так:
Стоя на платформе:

2021-04-27-19-33-18.png


Целиком (та что на дне это норм, она там и должна быть):

2021-04-27-19-47-38.png

Собственно у меня вопрос как работает прогрузка освещения и что можно сделать, кроме уменьшения пещеры. С двумя противоположными стенами всё ок, хотя они на 1 блок дальше от центра, да и перемещение точки атласа ближе к тени практически ничего не дало (ближняя часть тени стала исчезать, но вся остальная никуда не исчезла, а с противоположной стороны по прежнему всё норм). Я поигрался с настроками прогрузки и освещения - не помогло, но возможно не то менял.
 

Zloi_Kloun

Администратор
Команда форума
Друзья Гильдии
Adeptus Mechanicus
Оператор-Исповедник DeusExMachine
Регистрация
17.04.2013
Сообщения
3 775
Minecraft
Ururu
Собственно у меня вопрос как работает прогрузка освещения
на самом деле стены освещены, это ваш комп не прогружает)

что касается центра- освещение блоков не меняли. уровень света от светокамня равен 15.

свет от светоизлучающих блоков уменьшается на один уровень света на каждый метр (блок) от источника света. это относится к каждой из 3 осей. так же свет уменьшается по диагонали на сумму расстояния вдоль каждой оси. это ванильная механика.

это означает, что если светокамень (уровень 15) установлен на полу, уровень освещенности соседних блоков пола во всех четырёх направлениях равен 14, а у диагональных блоков во всех четырёх направлениях уровень освещенности 13 (например, 15 минус 1 юг, минус 1 восток). вдоль пола этот эффект создает ромбовидный рисунок освещения вокруг источника света. свет также распространяется по сложным путям, если он заблокирован непрозрачными блоками.

уменьшение света происходит в трех измерениях. это означает, что если светокамень (уровень 15) установлен на стене на расстоянии одного блока от пола, то блок на полу, который находится по диагонали на расстоянии одного блока (то есть не касается стены), имеет уровень освещенности 12 (например, 15 минус 1 юг, минус 1 восток, минус 1 вниз).
 

fewflare

Новичок
Регистрация
22.05.2020
Сообщения
33
Minecraft
fewflare
на самом деле стены освещены, это ваш комп не прогружает)

что касается центра- освещение блоков не меняли. уровень света от светокамня равен 15.

свет от светоизлучающих блоков уменьшается на один уровень света на каждый метр (блок) от источника света. это относится к каждой из 3 осей. так же свет уменьшается по диагонали на сумму расстояния вдоль каждой оси. это ванильная механика.

это означает, что если светокамень (уровень 15) установлен на полу, уровень освещенности соседних блоков пола во всех четырёх направлениях равен 14, а у диагональных блоков во всех четырёх направлениях уровень освещенности 13 (например, 15 минус 1 юг, минус 1 восток). вдоль пола этот эффект создает ромбовидный рисунок освещения вокруг источника света. свет также распространяется по сложным путям, если он заблокирован непрозрачными блоками.

уменьшение света происходит в трех измерениях. это означает, что если светокамень (уровень 15) установлен на стене на расстоянии одного блока от пола, то блок на полу, который находится по диагонали на расстоянии одного блока (то есть не касается стены), имеет уровень освещенности 12 (например, 15 минус 1 юг, минус 1 восток, минус 1 вниз).
Ок, спасибо за объяснения. То есть механика освещения ванильная, с ней всё логично и даже в рувики вроде как правильная информация. Значит проблема всё же в клиенте и том, как он отображает освещённость блоков. Это вообще можно как-то попробовать исправить или только перестраивать пещеру? Я и до этого замечал баги с освещением, например, тени под деревьями не менялись с течением дня (там прям заметно было, что тени какие-то не такие, подлетаешь - они прогружается и становятся нормальными).
 

Zloi_Kloun

Администратор
Команда форума
Друзья Гильдии
Adeptus Mechanicus
Оператор-Исповедник DeusExMachine
Регистрация
17.04.2013
Сообщения
3 775
Minecraft
Ururu
Это вообще можно как-то попробовать исправить или только перестраивать пещеру?
неа. эту хрень моянги сбажили еще в 1.0.0 (при переходе с 1.9пререлиза.
и на последнем 1.16 все еще не починено. там на 1.12 свет еще и лагать научился если чо)

это же отработка рендера на клиенте.
тут еще надо смотреть ЧТО именно у вас отрабатывает рендер.
система (на моей 7 и 10 таких проблем не замечала, бывают черные пятна при сете мультиблоков, решаются установкой светоблока любого и сноса), лвгл, опенгл, видюха, дрова.

если линухи - ищите где то там самостоятельно, к сожалению (пояснение почему - ниже). найдете - маякните как решили или уменьшили проблему, запилим гайд.

хеля как то говорил, что в целом можно заставлять сервер пересчитывать свет клиенту заново. но считать свет на сервере - это куча математических вычислений, матан, алгебра, геометрия. нагрузка на сервер дикая. он может, но вряд ли будет это реализовывать. клиент - это клиент. а так как даже такая компания как майки это не фиксанула до сих пор с их мощностями, мы то чо сделаем)
и эти дикие циклы в if(this.sections[i$].getNonEmptyBlockCount() > 0) return false;
крч... если у вас линух -копайте в дрова, опенгл, лвгл и вот это все. и в джаву конечно. в виндовой нашей джаве конкретно такая массовая проблема редкость.
с никсами не помогу. я не алё в нем. не моя работа в них шарить =)))
 

fewflare

Новичок
Регистрация
22.05.2020
Сообщения
33
Minecraft
fewflare
неа. эту хрень моянги сбажили еще в 1.0.0 (при переходе с 1.9пререлиза.
и на последнем 1.16 все еще не починено. там на 1.12 свет еще и лагать научился если чо)

это же отработка рендера на клиенте.
тут еще надо смотреть ЧТО именно у вас отрабатывает рендер.
система (на моей 7 и 10 таких проблем не замечала, бывают черные пятна при сете мультиблоков, решаются установкой светоблока любого и сноса), лвгл, опенгл, видюха, дрова.

если линухи - ищите где то там самостоятельно, к сожалению (пояснение почему - ниже). найдете - маякните как решили или уменьшили проблему, запилим гайд.

хеля как то говорил, что в целом можно заставлять сервер пересчитывать свет клиенту заново. но считать свет на сервере - это куча математических вычислений, матан, алгебра, геометрия. нагрузка на сервер дикая. он может, но вряд ли будет это реализовывать. клиент - это клиент. а так как даже такая компания как майки это не фиксанула до сих пор с их мощностями, мы то чо сделаем)
и эти дикие циклы в if(this.sections[i$].getNonEmptyBlockCount() > 0) return false;
крч... если у вас линух -копайте в дрова, опенгл, лвгл и вот это все. и в джаву конечно. в виндовой нашей джаве конкретно такая массовая проблема редкость.
с никсами не помогу. я не алё в нем. не моя работа в них шарить =)))
Так как у меня на основном компе встройка интела (на SotQ_HD играю без проблем), то в плане дров менять там особо нечего, да и opengl тоже - mesa она и в Африке mesa. Разве что потестил в другом дистре с более старыми версиями пакетов - всё так же. Потестил на ноуте с дискреткой нвидии: что с открытыми дровами, что с проприетарными - результат тот же. С разными версиями openjdk8 играться не стал, во-первых лень, а во-вторых, я всё равно собирался строить балконы, и они как раз решают проблему:

2021-04-30-02-44-04.png
 

Hel_ISR

妖怪
Команда форума
Лорд-Инквизитор
Adeptus Mechanicus
Куратор проекта
Регистрация
24.03.2011
Сообщения
18 388
Minecraft
nope
нужно читать ответ целиком, а не только первые и последние слова.

1. проблема не в нашем клиенте, она глобальна и у всех клиентов и версий.
2. техник имел в виду только то, что у винды такое наблюдается реже, чем у *nix-систем.
3. нет, не починить. пусть этим занимаются или производители драйверов под GPU, или джава/OpenGL/LWGL, или майкрософт с моянгами. это их косяки.

закрыто.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху