ORM-kartor förklarade (kanalpackning)
En ORM-karta är ett minnesbesparande trick: i stället för tre separata gråskaletexturer för ambient occlusion, roughness och metallic packar du var och en i en färgkanal i en enda bild. ORM står för Occlusion, Roughness, Metallic — i den kanalordningen.
Av Mixos
Det korta svaret
Var och en av AO, roughness och metallic är en gråskalekarta (en kanal), så att lagra tre som separata RGB-bilder slösar två tredjedelar av data. En ORM-textur packar Occlusion i den röda kanalen, Roughness i den gröna och Metallic i den blå — en textur, en sampler, en tredjedel av minnet. Det är samma data, bara buntad.
Varför kanalpackning finns
Gråskalekartor behöver bara en kanal, men bildfiler bär tre eller fyra. Att packa tre gråskalekartor i en RGB-textur minskar texturminnet och antalet textursamples GPU:n gör per pixel.
Det är en verklig prestandavinst, särskilt i spel och på webben där minne och bandbredd är knappa.
Vad som ligger i varje kanal
ORM-konventionen är Occlusion i rött, Roughness i grönt, Metallic i blått. Vissa pipelines stoppar in en height map eller extra mask i alfakanalen.
Unreal Engine använder ofta ORM-liknande packning, och Godot 4 läser en packad ORM-textur direkt i StandardMaterial3D. Bekräfta alltid den exakta kanalordning din målmotor förväntar sig — konventioner skiljer sig ibland.
Att skapa ORM-kartor
Du skapar AO, roughness och metallic som vanliga gråskalekanaler och packar dem sedan vid export. Du målar i regel inte en ORM-textur direkt.
Ett verktyg som Mixos håller varje kanal redigerbar och kan exportera dem individuellt eller sätta ihop ORM-paketet för motorer som vill ha det — så du behöver aldrig skyffla kanaler för hand i ett bildredigeringsprogram.
Källor och vidare läsning
Vanliga frågor
Vad står ORM för?
Occlusion, Roughness, Metallic — packade i de röda, gröna och blå kanalerna i en textur, i den ordningen.
Varför använda en ORM-karta i stället för tre texturer?
Minne och prestanda. Tre gråskalekartor lagrade som en RGB-textur använder en tredjedel av minnet och färre GPU-samples, utan dataförlust.
Vilka motorer använder ORM-kartor?
Unreal använder ofta ORM-liknande packning, och Godot 4:s StandardMaterial3D läser en packad ORM-textur direkt. Kontrollera alltid den exakta kanalordning ditt mål förväntar sig.