[PL] Xna i kompresja

Dziecinny błąd, natomiast warto pamiętać o ustawieniu sobie kompresji w zasobach Xna.

Gdy swoje pierwsze wypociny skompilowałem i przerzuciłem w binaria do innego folderu, to po spakowaniu miały około 20mb. Trochę się zdziwiłem, bo co prawda używałem dużych tekstur i zostawiłem dużo zasobów, których tak naprawde nie używałem, ale na miły Bóg, tam było tylko ok 12mb w JPG,MP3, FXB i plikach FX (HLSL).

Jak sprawdziłem jak Xna zamieniło mi przykładowego JPG w rozdzielczości HD Ready (1280x768) na plik .xnb to mnie zamurowało. Jpeg = ~700kB, xnb = prawie 4MB.
Zrobiłem się podejrzliwy, ale jak wspomniałem zupełnie nie pomyślałem, że kompresja jest tutaj parametrem, a nie cechą z paczki.

Szybka zmiana w właściwościach Texture Format:

image

.. z Color na DxtCompressed i mój JPG po zmianie na xnb zajmował 300kb, a całe spakowane archiwum z próbkami kodu ~8mb. Trochę lepiej, choć ciągle rozważam generowanie tekstur, w miejscach gdzie to jest możliwe i ma sens.

Podsumowując kompresję, warto zapoznać się z poniższą stroną:
https://msdn.microsoft.com/en-us/library/dd231952.aspx

Są pewne warunki. Dla przykładu, aplikacje na Zune’a nie wspierają kompresji w ogóle. Wytłumaczone jest to tym, że zysk związany z mniejszą wielkością nie będzie zrekompensowany narzutem na wydajność przy dekompresji (CPU Zune’a).
Z drugiej strony na Zune’a jednak te zasoby będą mniejsze (ze względu na mniejszą wspieraną rozdzielczość).

Dodatkowo wymiary naszej tekstury muszą być podzielne przez 4, inaczej kompilacja z kompresją się nie uda.

Technorati Tags: Polish posts,Xna,coding,gamedev