TGViewer
Dev Math Dev Math @easy_dev_math · 610 subscribers
Post #147 392
Гладкость сферы вы видите по свету, а не по форме

Мысленный эксперимент: возьмите шарик и покрасьте краской, которая поглощает падающий свет целиком. Что вы увидите? Не чёрный шар — плоское чёрное пятно. Отражать нечего, перетекания из света в тень нет, и шарообразность из картинки просто исчезает.

Эксперимент, кстати, не такой уж мысленный. У покрытий вроде Vantablack, забирающих больше 99,9% видимого света, ровно этот эффект и наблюдают: смятая фольга после покраски теряет все складки и читается как дыра в пространстве.

Собственно, вот вывод, который дальше объясняет всё остальное: объём вам даёт не геометрия, а то, как по поверхности разложен свет. Плавный градиент яркости мозг читает как кривизну, резкий скачок — как ребро. Убрали свет — остался ровно силуэт.

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

В шейдере яркость точки — это одно число: насколько поверхность в ней повёрнута к источнику. Берётся оно из нормали, лежащей в вершине. И нормаль не обязана быть перпендикуляром своего треугольника: усреднили в вершинах нормали соседних граней — свет поехал по плоской грани плавно, и зрение видит шар.

Поэтому гладкость выгоднее рисовать, чем моделировать: полигонами её тоже можно догнать, только платить придётся геометрией.

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

И загадка туда же. Гладкость нормалями подделывается легко: усреднили соседей — и плавно. А как сделать обратное — острое ребро, чтобы две грани куба или две стены комнаты держали каждая свой тон, без перетекания через угол? Как выкручиваются?

#геймдев #графика #математика #рендер #свет #gamedev
  • 🔥 7
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 →