Poznaj Mixos AISprawdź

Mapy ORM objaśnione (pakowanie kanałów)

Mapa ORM to sztuczka oszczędzająca pamięć: zamiast trzech osobnych tekstur w skali szarości dla ambient occlusion, roughness i metallic pakujesz każdą do jednego kanału koloru pojedynczego obrazu. ORM to skrót od Occlusion, Roughness, Metallic — w tej kolejności kanałów.

Autor:

Krótka odpowiedź

Każde z AO, roughness i metallic to mapa w skali szarości (jednokanałowa), więc zapisywanie trzech jako osobnych obrazów RGB marnuje dwie trzecie danych. Tekstura ORM pakuje Occlusion do kanału czerwonego, Roughness do zielonego, a Metallic do niebieskiego — jedna tekstura, jeden sampler, jedna trzecia pamięci. To te same dane, tylko zebrane razem.

Dlaczego istnieje pakowanie kanałów

Mapy w skali szarości potrzebują tylko jednego kanału, a pliki obrazów niosą trzy lub cztery. Spakowanie trzech map w skali szarości do jednej tekstury RGB zmniejsza pamięć tekstur i liczbę próbek tekstur, które GPU wykonuje na piksel.

To realny zysk wydajności, zwłaszcza w grach i w sieci, gdzie pamięć i przepustowość są ograniczone.

Co trafia do którego kanału

Konwencja ORM to Occlusion w czerwonym, Roughness w zielonym, Metallic w niebieskim. Niektóre pipeline'y chowają mapę height lub dodatkową maskę w kanale alfa.

Unreal Engine powszechnie używa pakowania w stylu ORM, a Godot 4 czyta spakowaną teksturę ORM bezpośrednio w StandardMaterial3D. Zawsze potwierdź dokładną kolejność kanałów, jakiej oczekuje silnik docelowy — konwencje bywają różne.

Tworzenie map ORM

AO, roughness i metallic tworzysz jako zwykłe kanały w skali szarości, a pakujesz je przy eksporcie. Zazwyczaj nie maluje się tekstury ORM bezpośrednio.

Narzędzie takie jak Mixos utrzymuje każdy kanał edytowalny i może eksportować je osobno lub złożyć paczkę ORM dla silników, które jej chcą — więc nigdy nie musisz ręcznie żonglować kanałami w edytorze obrazów.

Najczęściej zadawane pytania

Co oznacza skrót ORM?

Occlusion, Roughness, Metallic — spakowane odpowiednio do kanałów czerwonego, zielonego i niebieskiego jednej tekstury.

Po co mapa ORM zamiast trzech tekstur?

Pamięć i wydajność. Trzy mapy w skali szarości zapisane jako jedna tekstura RGB zajmują jedną trzecią pamięci i wymagają mniej próbek GPU, bez utraty danych.

Które silniki używają map ORM?

Unreal powszechnie używa pakowania w stylu ORM, a StandardMaterial3D w Godot 4 czyta spakowaną teksturę ORM bezpośrednio. Zawsze sprawdź dokładną kolejność kanałów, jakiej oczekuje Twój cel.