TGViewer
Dev Math Dev Math @easy_dev_math · 610 subscribers
Post #121 397
Лоу-поли, а тормозит: кто съел ваш FPS?

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

Собираете уровень из лоу-поли-пака: деревня, лес, заборы, камни — по паре сотен треугольников на модель. Геометрия копеечная, а кадр проседает. Открываете профайлер и видите странное: видеокарта простаивает, весь кадр съел процессор, а счётчик батчей в статистике рендера ушёл в тысячи. Та же история в другом костюме — клон Minecraft: мир из кубов по 12 треугольников, каждый куб — отдельный объект, и уже десяток чанков кладёт игру. Как так? Ведь треугольников мало и причем тут процессор?

Процессор не рисует — он раздаёт команды. Draw call — это команда «нарисуй вот этот меш вот этим материалом», которую CPU через графический драйвер отправляет видеокарте. И перед каждой такой командой — бумажная работа: собрать состояние (какой шейдер, какие текстуры, какие буферы, как смешивать), драйвер всё это проверит, переведёт на язык GPU и положит в командный буфер. Только после этого видеокарта доберётся до треугольников.

Собственно, ключевое свойство: цена этой бумажной работы от количества треугольников почти не зависит. Это как заказы в интернет-магазине: оформить один заказ на тысячу ручек — пара минут, оформить тысячу заказов по одной ручке — вечер. Товар тот же, вся разница — в накладных расходах на каждый заказ.

Лоу-поли-пак экономит то, что и так ничего не стоит. Миллион треугольников одним вызовом GPU прожуёт легче, чем деревню из тысячи заборов — тысячей вызовов. Поэтому важно следить за числом дроуколлов.

Статья этой недели «Путь одного draw call»: пройдём всю дорогу команды от вызова в коде до пикселей на экране.

#геймдев #графика #математика #gpu #drawcall #оптимизация
  • 🔥 20
  • ❤ 5
  • ❤‍🔥 1
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 →