Ускорение загрузки с FastDl за счёт сжимания текстур (в 5 раз как минимум)

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Всем привет, в этой статье я опишу способ как можно ускорить загрузку файлов из FastDl клиентом (игрок, который входит первый раз на сервер).

Для работы на понадобится:
VTFEditor (Или SDK)
Caesium (Или другая программа для сжатия изображений)



Ход работы:

1) Копируем в отдельную папку все файлы, который нам нужно сжать (из папки materials/)

2) Если помимо .vtf файлов есть другие, то фильтруем их, нам нужно оставить только .vtf файлы, для этого в поиск в проводнике пишем .vtf, в столбце Тип (если нету, добавьте) ставим галочку возле Valve Texture Format, в поиске очищаем запрос, после этого нам покажут все .vtf файлы, опять нажимает на Тип и убираем галочку возле Valve Texture Format и ставим на всем другие, кроме Valve Texture Format и Папка с Файлами, после нажимаем ctrl + A и удаляем все выделенные файлы, перезаходим в эту папку.

2.gif


3) Открываем VTFEdit, переходим в и - Convert Folder, выбираем To Png, ставим галочку напротив Recursive, выбираем папку с .vmt файлами и папку, куда всё это будет конвертироваться. Нажимаем Convert.

3.gif


4) Сжимаем файлы, для этого открываем папку, в которую мы конвертировали файлы (папка с .png файлами), в поиск вводим точку или расширение изображения, что бы найти все файлы, потому что есть баг в Caesium'e, он не видит файл если он в папке пустой папки, выделяем все файлы и перетаскиваем их в окон Caesium'a, ставим галочку Применить для всех, выбираем Качество на свой вкус, можно слишком не сжимать, что бы качество уж слишком не терять, выбираем папку вывода, если есть папки, в которых файлы, то ставим галочку Сохранить структуру.
Так-же можно изменить исходный размер нажав галочку возле Размер изображения, ставим режим Процентный (Абсолютный по дефолту) и галочку Применить для всех и Сохранить пропорции, ставим нужный процент. Нажимаем Выполнить сжатие.

Так-же перед выполнением сжатия можно посмотреть каким будет выходное качество изображения, для этого нажимаем галочку справа внизу Авто просмотр, нажимаем два раза на изображение (слева посередине) и справа будет показано до и после сжатия.

4.1.gif


5) Конвертируем обратно в .vtf сжатые изображения, так-же со флагом Recursive

5.gif



6) Копируем и заменяем наши файлы с оригиналом, сжимаем в архивы и кидаем на FastDl. Заменяем мы для того, что бы исключить пропадание файлов, бывает такое что VTFEditor при конвертации пропускает файл из-за того, что после конвертации он станет слишком маленьким по размеру, данный метод исключит эту возможность.

6.gif



Вывод

До и После
сжатия


до и после.png


Автор данной темы не несёт ответственности за Ваши действия, всё что Вы делаете это на Ваш страх и риск!

Из возможных багов может быть:
  • слетание флагов текстур
  • неправильная работа gif-текстур, это когда в одном файле несколько изображений
  • ошибки загрузки и тд причины!
 
Последнее редактирование:

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
@iLoco, странно, думал в VTF попиксельно пишется. 512х512 = 171кб (с мипмапами), 512х512 = 129кб (без мипмапов), хотя у меня все исходники в tga. Возможно поэтому я так и подумал, хм.
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
@iLoco, странно, думал в VTF попиксельно пишется. 512х512 = 171кб (с мипмапами), 512х512 = 129кб (без мипмапов), хотя у меня все исходники в tga. Возможно поэтому я так и подумал, хм.
Можно держать не vtf а в tga разве файлы на сервере/игре?
 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
@iLoco, исходники 😹
TGA (Targa) - Lossless формат (без потери качества), поэтому информация каждого пикселя хранится отдельно и целиком, 128х128 TGA будет одинакового размера при любой информации, хранящейся в нём. Я ещё не проверял разницу, но я думал её быть не должно вообще. Гляну.

UPD: проверил, вроде как ничего и не изменилось. Размер какой был, такой и остался... 129кб, если без альфа-канала, для 512х512 без мипмапов.
 
Последнее редактирование:

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
Ну в принципе то, что я и говорил:
1611132534174.png
 
Сверху Снизу