TGViewer
Dev Math Dev Math @easy_dev_math · 606 subscribers
Post #168 355
Проблемы с тенями на больших локациях

Пока сцена небольшая, тени идеальны. Контур чёткий, ножки стула читаются, всё лежит там, где должно. Потом уровень дорастает до нормального размера, и в первом же кадре всё становится плохо.

Дальше всё идёт по накатанной. Качество теней ставят на максимум, разрешение карты поднимают с 1024 до 2048, потом до 4096, память под неё растёт вчетверо на каждом шаге и это не помогает. Было такое?

Собственно, вся история упирается в одну штуку. Карта теней — это текстура на N×N, и она обязана накрыть всё, что свет освещает. Сторона накрытой области, поделённая на разрешение, даёт размер одного текселя, а внутри текселя ответ «в тени или нет» один на всех.

Считаем. Комната двадцать метров, карта 1024 — два сантиметра на тексель, тень от стула держит форму. Та же карта на локации в пятьсот метров — сорок девять сантиметров. Полметра.

Я не к тому, что разрешение поднимать нельзя. До какого-то момента это работает. Просто это самый дорогой вариант из имеющихся.

Посмотрите, какую область накрывает карта — это дальность теней, она есть в настройках почти любого движка, — поделите на разрешение и сравните с размером того, чья тень должна читаться. Вышло полметра на тексель, а вам нужны перила?

Ну и самое интересное — дальше. Область просто так не ужать: свет обязан освещать весь уровень, тени нужны и вдали. Но нужны-то они с разной подробностью: под ногами сантиметры, на горизонте хватит метров, а карта одна и тексель у неё везде одинаковый. Отсюда та самая строчка «Shadow Cascades» в настройках: карту подгоняют не под уровень, а под то, что видит камера, и режут по дистанции. Четыре карты по 1024 вместо одной на 2048 — та же память, а у ног тексель выходит примерно вшестеро мельче.

Как именно режут дистанцию, почему на границах появляются швы и отчего край тени начинает переливаться, стоит тронуть камеру, — разберём в пятницу.

#геймдев #графика #математика #рендер #тени #gamedev
  • 🔥 8
More from @easy_dev_math
  1. Sep 26, 2026🤨 Разбор игры — «Алхимик: магазин волшебных зелий» https://yandex.ru/games/#app=582380 Чт…
  2. Sep 25, 2026🥴 Кина не будет (сегодня) У меня техническая накладка. Форсмажор. Поэтому прошу понять и…
  3. Sep 24, 2026😁 Почему игроки фармят пиксели https://dev-math.ru/articles/grind/ Дописал статью про воп…
  4. Sep 23, 2026⚡️ Как сделать игру? Подумал что интересного можно сделать и придумал. Решил описать больш…
  5. Sep 23, 2026🎉 Свои эмодзи https://t.me/addemoji/DevMath У канала появились свои эмодзи. Это Дельта :)…
  6. Sep 22, 2026Хороший роглайк заставляет выбирать Давайте для начала подумаем — а что такое выбор? Вы пр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →