Rafał Posted yesterday at 07:08 PM Posted yesterday at 07:08 PM (edited) Przypadkiem odkryłem że gra ma wyłączony mipmap streaming. Nie do końca wiem czy jest to bug czy zamierzone działanie - aczkolwiek jeżeli faktycznie tak jest to w moim mniemaniu jest to pozbawione sensu. Zgaduję że to tylko niedopatrzenie. W chwili obecnej gra potrzebuje horrendalnych ilości vram, wykorzystując texture/mipmap streaming można zmniejszyć ilość potrzebnego vramu o blisko 80-90% kosztem nieznacznie większego użycia CPU. Obecnie do vram wszystkie tekstury ładowane są w całości ze wszystkimi mip mapami jakie posiadają, niezależnie od tego która mip mapa jest wykorzystywana. Obrazowo, obiekt który jest gdzieś ledwo widoczny na horyzoncie pomimo że korzysta z mip mapy np. z mip11 (rozdzielczość 2x2 px i waga 2B!!) i tak ładuje do pamięci vram wszystkie mip mapy wraz z mip0 (czyli teksturę w pełnej rozdzielczości 4096x4096 px o wadze 46,2MB dla bc1 z mip mapami). Jest różnica pomiędzy 46,2MB a 2B, co? No właśnie. Idąc dalej, niech scena w grze korzysta z przykładowo 12GB vram dla tekstur. Dla uproszczenia załóżmy 70% sceny wyświetla tekstury na poziomie mip2, mip1 25% sceny i w mip0 5% sceny. W tej chwili wygląda to mniej więcej tak: mip2 -> 70% z 12GB = 8,4GB mip1 -> 25% z 12GB = 3,0GB mip0 -> 5% z 12GB = 0,6GB --- Suma = 12GB --- Używając mipmap streamingu: mip2 -> 8,4GB dzielimy przez ~23,1 (stosunek rozmiaru tekstry mip0 do mip2 46,2MB vs 2MB) = ~372,4 MB!! mip1 -> 3,0GB dzielimy przez ~4,36 (stosunek rozmiaru mip0 do mip1 46,2MB vs 10,6MB) = ~688MB! mip0 -> 0,6GB zostaje jak było Wynikowo mamy zużycie na poziomie ok. 2GB vramu vs 12GB poświęcając odrobinę czasu CPU. Obliczenia oczywiście czysto hipotetyczne, scena nie ograniczałaby się tylko do poziomów mip0, mip1 i mip2 oraz na pewno nie tak wyglądał by stosunek udziału mip0 do innych - ciężko mi tak z głowy oszacować stosunek więc wziąłem jaki mi się wydaje. Praktycznie każda duża gra korzysta z tej technologii, dobra to nie argument, ale niech zatem argumentem będzie że wersja na Xbox przestanie wyglądać jak rozmazany kleks bo obiekty bliskie będą mogły korzystać z tekstury w wysokiej rozdzielczości. Z wad użytkownik z wolnym cpu będzie mógł zauważyć rozmazane tekstury przez jakąś 1-2s przy szybkim zmianie sceny (np. kręcenie głową 360 stopni). https://docs.unity3d.com/2023.1/Documentation/Manual/TextureStreaming.html - dokumentacja unity dot. powyższego. Edited yesterday at 08:00 PM by Rafał 1
SIMRAIL Team Admin BOT Posted 2 hours ago SIMRAIL Team Posted 2 hours ago Thank you for reporting this issue. A similar problem has already been reported by other users. Dziękujemy za zgłoszenie tego problemu. Podobny problem był już zgłaszany przez innych użytkowników.
Recommended Posts