Tekstury, pliki i paczki · 3 min czytania

Jak dodać mipmapy do YTD: różowe lub migoczące tekstury z bliska

Czytaj w języku: English · Español · Français · Deutsch · Português · Italiano · Türkçe · Русский

Tekstura zwykle ma mipmapy: mniejsze kopie samej siebie, każda o połowę mniejsza od poprzedniej. Gra rysuje pełną teksturę z bliska, a mniejsze kopie z daleka, co jest tańsze i wygląda gładziej. Niektóre eksportery zapisują tekstury tylko z pełnym poziomem, a w FiveM może to wyglądać jak model, który z bliska jest różowy lub rozmazany albo migocze z daleka.

Dlaczego tekstura bez mipmap sprawia kłopot

Prawie wszystko w grze ma mipmapy. Przejrzeliśmy 1500 plików .ytd GTA V: z ich 3534 tekstur kolorów tylko 65 ma jeden poziom, a tylko 2 z nich są większe niż 64 piksele, obie to emblematy pojazdów. Tekstury, które gra zostawia na jednym poziomie, robi to celowo: palety tint, render targety skryptów (script_rt_…), mapy wody, emblematy i niektóre obrazy interfejsu.

Gra nie ma jak zmniejszyć tekstury bez mniejszych poziomów. Gdy zabraknie pamięci tekstur, najprawdopodobniej będzie różowa lub rozmazana, z bliska będzie nagle się pojawiać, a z daleka migotać. Dokładnie to zobaczyliśmy u addonowego peda jednego z klientów: z bliska w grze był różowy, mimo że wszystkie tekstury były na miejscu. Jego tekstura ciała to 2048 × 2048 DXT5 zapisana z jednym poziomem.

Mipmapy kosztują około jednej trzeciej więcej pamięci niż sam pełny poziom. To normalna cena i płacą ją wszystkie tekstury samej gry.

Znajdź tekstury bez mipmap

Trzy narzędzia je wymieniają według tej samej reguły (jeden poziom, ponad 64 piksele i nie jest to rodzaj, który gra trzyma na jednym poziomie):

  • Missing Textures Check: cały zasób; sekcja Size and format wymienia tekstury bez mipmap.
  • Asset Optimizer: przeciągnięte pliki, z napisem "N textures with no mipmaps" (N tekstur bez mipmap) przy każdym.
  • Model Inspector: jeden model i jego .ytd, z sekcją No mipmaps.

Odbuduj je z mipmapami

  1. Przeciągnij .ytd do Asset Optimizer razem z modelami, które go używają (.ydr, .yft, .ydd). Z modelami obok mapy normalne są rozpoznawane po tym, jak modele ich używają.
  2. Zostaw zaznaczone Add missing mipmaps (domyślnie jest włączone).
  3. Wybierz Largest texture size (największy rozmiar tekstury). Tekstury większe są sprowadzane do tego rozmiaru; pozostałe zachowują swój rozmiar (zaokrąglony do potęgi dwójki) i dostają tylko mipmapy.
  4. Kliknij Download the lighter files (.zip) i wstaw pliki z powrotem do stream/ pod tymi samymi nazwami.
  5. Przeczytaj What was done to each texture (co zrobiono z każdą teksturą): jedna linia na teksturę, z rozmiarem i formatem przed i po.
Asset Optimizer po przebiegu: tabela plików z rozmiarem po zmianie i uwagi do każdej tekstury, np. DXT5 2048 bez mipmap odtworzona w 1024 z 9 mipmapami
Testowy .ytd z sześcioma teksturami zapisanymi bez mipmap, po przebiegu: każda odtworzona wraz z poziomami.

Każda odbudowana tekstura dostaje wszystkie poziomy aż do 4 pikseli. Skompresowane tekstury kolorów stają się DXT1, gdy żaden piksel nie jest przezroczysty, i DXT5, gdy jakieś są (nieskompresowane pozostają nieskompresowane). Mapy normalne zostają mapami normalnymi i na każdym poziomie są ponownie normalizowane do długości jednostkowej. Palety, render targety i pozostałe rodzaje z jednym poziomem zostają nietknięte, a formaty, których narzędzie nie umie odbudować (np. BC7), zostają takie, jakie są, z notatką.

Texture Editor nie jest tu właściwym narzędziem: zmniejsza i zastępuje tekstury, ale nie dodaje mipmap do tekstury, którą zostawiasz bez zmian. Tekstura zastąpiona tam wraca z mipmapami.

Sprawdź w grze

Gracze trzymają stary .ytd, dopóki się nie połączą ponownie, więc dołącz do serwera zamiast tylko restartować zasób. Potem obejrzyj model z bliska i z daleka.

Pytania

Czy każda tekstura powinna mieć mipmapy?
Prawie każda w GTA V je ma. Wyjątkami są tekstury, które gra celowo trzyma na jednym poziomie (palety tint, render targety skryptów, mapy wody), a narzędzia zostawiają je w spokoju.
Czy mipmapy powiększają moje pliki?
O około jedną trzecią. Jeśli przez to plik przekroczy ostrzeżenie FiveM 16 MiB, jednocześnie obniż największy rozmiar tekstury.

Narzędzie do tego

Asset Optimizer

Przeciągnij swoje pliki stream: tekstury bez mipmap je odzyskają, za duże zostaną sprowadzone do wybranego rozmiaru, a każdy plik zachowa swoją nazwę.

Otwórz Asset Optimizer

Przydatne także tutaj: Missing Textures Check · Model Inspector

Więcej poradników

Wszystkie poradniki →

Każde narzędzie możesz wypróbować za darmo: 5 eksportów dziennie. Zaloguj się przez Discord, aby z nich korzystać.