LerpworksAcademy

Код и математика · курс

Оптимизация

17 уроков · 5 глав

Почему игра тормозит и как это чинят: бюджет кадра, порядок поиска, профайлеры видеокарты и процессора, LOD и Nanite, компиляция шейдеров, тик, загрузка, сборка мусора и память, цена эффектов, анимации и звука, настройки качества и большой мир. Читать по порядку.

Курс ещё пишется. Готово уроков: 4 из 17.

Глава 1 · Бюджет кадра

1LOD, инстансинг и Nanite: как рисуют миллион травинокУрок · базаКак большая сцена остаётся в бюджете: две цены — треугольники и вызовы отрисовки; уровни детализации по размеру на экране, прыжки и дизеринг, HLOD и импостеры; почему мелкие треугольники дороги; инстансинг и данные копии; отсечение по пирамиде, дальности и перекрытию (Hi-Z); Nanite — кластеры, ошибка меньше пикселя и что он не любит.2Бюджет кадра на видеокартеУрок · глубжеПоследний урок курса: бюджет кадра в миллисекундах (16.7 мс при 60 к/с) и почему мерить в мс, а не в FPS; процессор и видеокарта работают одновременно, кадр задаёт самое медленное звено, опыт с разрешением; задержка ввода и очередь кадров; смета видеокарты по проходам из курса; почему трава, тени и прозрачность дорогие; видеопамять, стриминг текстур и её переполнение; как искать узкое место профилировщиком; чек-лист экономии для художника.

Глава 2 · Найти узкое место

Глава 3 · Рывки и память

6Рывки при первом показе: компиляция шейдеровскороОткуда берутся рывки, когда впервые появляется новый эффект или материал: видеокарте нужно собрать программу под конкретную связку настроек. Варианты шейдеров, кэши, прогрев заранее и что может сделать художник.7Цена тика: что считать каждый кадрскороПочему тысяча акторов с пустым тиком тормозит: стоимость вызова каждый кадр, тик реже и по событию, группы и порядок тика и что переносить из тика в таймеры и события.8Загрузка без фризов: мягкие ссылки и подгрузка в фонескороПочему игра замирает при открытии меню или входе в новую зону: жёсткие ссылки тянут за собой весь граф ассетов. Мягкие ссылки, подгрузка в фоне, загрузочные экраны и как увидеть, что загружается.9Сборка мусора и рывкискороПочему раз в несколько секунд кадр подпрыгивает: сборщик мусора проходит по всем объектам. Как уменьшить его работу: меньше временных объектов, пулы, кластеры и настройки частоты.10Память игры: куда уходят гигабайтыскороИз чего складывается память игры: текстуры, модели, звук, анимации, объекты и код. Как посмотреть, кто сколько занимает, бюджеты под платформу и что будет, когда память кончится.

Глава 4 · Цена систем

Глава 5 · Большая игра

14Настройки качества: от слабого ПК до мощногоскороКак одна игра работает на разных компьютерах и консолях: группы настроек качества, что в них меняется, профили устройств, разрешение с апскейлом и что резать первым.15Открытый мир: как он грузится кускамиУрок · глубжеКак большой мир грузится вокруг игрока: сетка ячеек, дальность загрузки, упрощённые копии вдали, слои мира, большие координаты и что ломается на стыках кусков. World Partition в Unreal и как это решают другие движки.16Бюджет открытого мираШпаргалкаОдин экран чисел и проверок: размеры ландшафта, ячейки и дальности загрузки, плотность растительности, дальность отрисовки, что смотреть в профайлере и чек-лист перед тем, как расширять мир.17Грабли производительностискороЧастые причины тормозов: невидимые предметы с тенями, прозрачность во весь экран, тик у тысяч акторов, огромные текстуры на мелочах, подгрузка посреди боя. Симптом, причина, решение.