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: Mixos
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.
Źródła i dalsza lektura
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.