Ускоряем игру на UE4: инструкция разработчика

Содержание

Слайд 2

Ускоряем игру на UE4: инструкция разработчика

Ускоряем игру на UE4: инструкция разработчика

Слайд 3

Оптимизация текстур

Уменьшение размера
Сжатие
«Девятка»
Выравнивание размера по степени 2
Комбинирование с помощью пиксельных шейдеров

Оптимизация текстур Уменьшение размера Сжатие «Девятка» Выравнивание размера по степени 2 Комбинирование с помощью пиксельных шейдеров

Слайд 4

Оптимизация текстур: уменьшение размера

Оптимизация текстур: уменьшение размера

Слайд 5

Оптимизация текстур: уменьшение размера

Оптимизация текстур: уменьшение размера

Слайд 6

Оптимизация текстур: сжатие

Оптимизация текстур: сжатие

Слайд 7

Оптимизация текстур: сжатие

Оптимизация текстур: сжатие

Слайд 8

Оптимизация текстур: «девятка»

Углы фиксированы, центр и края растягиваются

Оптимизация текстур: «девятка» Углы фиксированы, центр и края растягиваются

Слайд 9

Оптимизация текстур: выравнивание размера по степени 2

2048x1024

1920x1080

Оптимизация текстур: выравнивание размера по степени 2 2048x1024 1920x1080

Слайд 10

Оптимизация текстур: выравнивание размера по степени 2

Оптимизация текстур: выравнивание размера по степени 2

Слайд 11

Оптимизация текстур: комбинирование с помощью пиксельных шейдеров

Y: 1024x512
512 Кбайт

RGB: 1024x512
768 КБайт
Оригинальный размер 1536

Оптимизация текстур: комбинирование с помощью пиксельных шейдеров Y: 1024x512 512 Кбайт RGB:
КБайт
Выигрыш в размере 50%

U: 512x256
128 КБайт

V: 512x256
128 КБайт
Pixel
shader

Слайд 12

Оптимизация текстур: комбинирование с помощью пиксельных шейдеров
Pixel
shader

YUV444 в RGB888

Оптимизация текстур: комбинирование с помощью пиксельных шейдеров Pixel shader YUV444 в RGB888

Слайд 13

Оптимизация GPU

Исключаем текстуры с альфа-каналом
MIP-map текстуры
Детализация модели
Уменьшение разрешения Viewport

Оптимизация GPU Исключаем текстуры с альфа-каналом MIP-map текстуры Детализация модели Уменьшение разрешения Viewport

Слайд 14

Оптимизация GPU: исключаем текстуры с альфа-каналом

Оптимизация GPU: исключаем текстуры с альфа-каналом

Слайд 15

Оптимизация GPU: исключаем текстуры с альфа-каналом

Оптимизация GPU: исключаем текстуры с альфа-каналом

Слайд 16

Оптимизация GPU: MIP-map текстуры

Оптимизация GPU: MIP-map текстуры

Слайд 17

Оптимизация GPU: MIP-map текстуры

Оптимизация GPU: MIP-map текстуры

Слайд 18

Оптимизация GPU: детализация модели

5500

1580

140

Оптимизация GPU: детализация модели 5500 1580 140

Слайд 19

Оптимизация GPU: детализация модели

Оптимизация GPU: детализация модели

Слайд 20

Оптимизация GPU: уменьшение разрешения Viewport

r.SetRes
r.MobileContentScaleFactor

Оптимизация GPU: уменьшение разрешения Viewport r.SetRes r.MobileContentScaleFactor

Слайд 21

Оптимизация CPU

Выносим игровую логику и сложные расчеты из Blueprint в C++
Правильно определяем

Оптимизация CPU Выносим игровую логику и сложные расчеты из Blueprint в C++
Blueprint методы в C++
Кэширование результатов расчетов
Выносим ресурсоемкие расчеты в фоновые задачи
Для общей оценки используем приближенные вычисления
Правильно используем события и делегаты
Выравниваем структуры данных в памяти
Используем векторные инструкции процессора
Не допускаем продолжительный нагрев процессора

Слайд 22

Оптимизация файловой системы

Общие ресурсы для всех карт находятся в отдельном паке
Специфические ресурсы

Оптимизация файловой системы Общие ресурсы для всех карт находятся в отдельном паке
для карт лучше дублировать
Асинхронная загрузка ресурсов (streaming)