Ускоряем игру на UE4: инструкция разработчика
Оптимизация текстур
Оптимизация текстур: уменьшение размера
Оптимизация текстур: уменьшение размера
Оптимизация текстур: сжатие
Оптимизация текстур: сжатие
Оптимизация текстур: «девятка»
Оптимизация текстур: выравнивание размера по степени 2
Оптимизация текстур: выравнивание размера по степени 2
Оптимизация текстур: комбинирование с помощью пиксельных шейдеров
Оптимизация текстур: комбинирование с помощью пиксельных шейдеров
Оптимизация GPU
Оптимизация GPU: исключаем текстуры с альфа-каналом
Оптимизация GPU: исключаем текстуры с альфа-каналом
Оптимизация GPU: MIP-map текстуры
Оптимизация GPU: MIP-map текстуры
Оптимизация GPU: детализация модели
Оптимизация GPU: детализация модели
Оптимизация GPU: уменьшение разрешения Viewport
Оптимизация CPU
Оптимизация файловой системы
Оптимизация файловой системы: асинхронная загрузка ресурсов
1.10M
Категория: ИнтернетИнтернет

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

1.

OCTOPUS GAMES
Alexandr Murashko

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

Текстуры
GPU
CPU
Файловая
система

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


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

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

Размер в килобайтах одного канала текстуры
Размер в килобайтах
16384
4096
2048
1024
512
256
4096
1024
128
256
64
16

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

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

Соотношение размера текстуры от формата сжатия
Размер относительно
оригинала
100%
RAW
PVRTC4
PVRTC2
50%
ETC1
25%
16%
16%
ETC2

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

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

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

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

1920x1080
2048x1024

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

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

Y: 1024x512
512 Кбайт
U: 512x256
128 КБайт
V: 512x256
128 КБайт
Pixel
shader
RGB: 1024x512
768 КБайт
Оригинальный размер 1536 КБайт
Выигрыш в размере 50%

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

Pixel
shader
YUV444 в RGB888

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


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

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

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

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

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

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

5500
1580
140

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

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

• r.SetRes
• r.MobileContentScaleFactor

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


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

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

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

23. Оптимизация файловой системы: асинхронная загрузка ресурсов

English     Русский Правила