TGViewer
Dev Math Dev Math @easy_dev_math · 615 subscribers
Post #50 551
Raymarch на 5 fps — это не GPU виноват. Это вы «шагаете» неправильно

У вас есть SDF и луч. Как найти, где луч упирается в поверхность? Самый очевидный ответ — идём вдоль луча маленькими шагами и проверяем, попали ли.


// плохо: фиксированный шаг
for (int i = 0; i < 1000; i++) {
if (sdf(p) < EPS) return p;
p += dir * 0.01;
}


И вот ловушка. Шаг маленький — тысячи итераций на пиксель, шейдер выдает 5 fps. Шаг большой — луч проскакивает сквозь тонкие объекты, артефакты по всей сцене. Компромисс «либо медленно, либо неточно». А хочется оба.

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


// хорошо: sphere tracing
for (int i = 0; i < 64; i++) {
float d = sdf(p);
if (d < EPS) return p;
p += dir * d; // ← шаг ровно SDF
}


Близко к поверхности шаги мелкие (поле говорит «осторожно, рядом»), в пустоте — большие («лети спокойно»). Обычно 30–60 итераций на всю сцену.

По сути, вся магия SDF держится именно на этой идее. Без sphere tracing формулы расстояний были бы просто красивой математикой без практического смысла.

#мат_геймдев #МатРазбор #шейдеры
  • 🔥 12
  • ❤ 1
More from @easy_dev_math
  1. Sep 28, 2026🤔 Как проверить свою идею? Сделал небольшое видео о том, как проверить свою идею. Самый п…
  2. Sep 28, 2026🤔 Почему так важен онбординг в игре? По следам разбора давайте на этой неделе разберем те…
  3. Sep 26, 2026🤨 Разбор игры — «Алхимик: магазин волшебных зелий» https://yandex.ru/games/#app=582380 Чт…
  4. Sep 25, 2026🥴 Кина не будет (сегодня) У меня техническая накладка. Форсмажор. Поэтому прошу понять и…
  5. Sep 24, 2026😁 Почему игроки фармят пиксели https://dev-math.ru/articles/grind/ Дописал статью про воп…
  6. Sep 23, 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 →