Färghantering

Färghantering är viktigt för att skapa renderingar och tillgångar som är fysiskt korrekta och ser bra ut på flera olika visningsenheter. Det används både för att säkerställa att alla delar av pipelinen tolkar färger korrekt och för att göra konstnärliga ändringar som exponering och färggradering.

../_images/render_color-management_different-exposures.jpg

Olika vyer och exponeringar av samma rendering.

Blenders färghantering är baserad på biblioteket OpenColorIO. Genom att använda samma OpenColorIO-konfiguration i flera applikationer kommer samma färgrymder och transformationer att vara tillgängliga för konsekventa resultat.

Arbetsflöde

Scen Linjär färgrymd

För korrekt resultat behövs olika Färgrymder för rendering, visning och lagring av bilder. Rendering och compositing görs bäst i scene linear färgrymd, som motsvarar naturen bättre och gör beräkningarna mer fysiskt korrekta.

../_images/render_color-management_linear-workflow.svg

Ett exempel på ett linjärt arbetsflöde.

Om färgerna är linjära betyder det att om vi i verkligheten fördubblar antalet fotoner så fördubblas också färgvärdena. Annorlunda uttryckt, om vi har två foton/renderingar där var och en har en av två lampor tända och lägger ihop dessa bilder blir resultatet detsamma som en rendering/foto där båda lamporna är tända. Av detta följer att ett sådant radiometriskt linjärt utrymme är bäst för fotorealistisk rendering och compositing.

Dessa värden motsvarar dock inte direkt den mänskliga uppfattningen eller det sätt på vilket bildskärmar fungerar. och bildfiler lagras ofta i olika färgrymder. Därför måste vi se till att göra rätt konvertering till och från den här scenens linjära färgrymd.

Display omvandlar

Att omvandla scenens linjära färger till display innebär både tekniska och konstnärliga val.

För korrekt visning av renderingar krävs en konvertering till visningsenhetens färgrymd. En datorskärm fungerar på ett annat sätt än en digital bioprojektor eller HDTV och behöver därför en annan konvertering.

Det finns också ett konstnärligt val att göra. Delvis beror det på att bildskärmar inte kan visa hela färgspektrumet och bara har begränsad ljusstyrka, så vi kan pressa färgerna så att de passar in i enhetens färgskala. Dessutom kan det vara bra att ge renderingarna ett särskilt utseende, t.ex. som om de har skrivits ut på riktig kamerafilm. Standardtransformationen Filmic gör detta.

../_images/render_color-management_linear-display-space.svg

Omvandling från linjär till displayenhetens utrymme.

Bildfärgrymder

När du laddar och sparar medieformat är det viktigt att ha färghantering i åtanke. Filformat som PNG eller JPEG lagrar vanligtvis färger i en färgrymd som är redo för visning, inte i en linjär rymd. När de används som texturer i renderingar måste de först konverteras till linjära, och när renderingar sparas för visning på webben måste de också konverteras till ett visningsutrymme.

För mellanliggande filer i produktionen rekommenderas att man använder OpenEXR-filer. Dessa lagras alltid i scenens linjära färgrymder, utan någon dataförlust. Det gör dem lämpliga för att lagra renderingar som senare kan sättas samman, färggraderas och konverteras till olika utdataformat.

Bilder kan också innehålla data som egentligen inte är en färg. Normal- eller förskjutningskartor innehåller t.ex. bara vektorer och offsets. Sådana bilder bör markeras som Non-Color Data så att ingen färgrymdskonvertering sker på dem.

Renderingsinställningar

Referens

Redigerare:

Egenskaper

Panel:

Renderegenskaper ‣ Färghantering

../_images/render_color-management_panel.png

Egenskaper för färghantering.

Det här är färghanteringsinställningar som används i hela Blender. Dessa färghanteringsinställningar är scenspecifika så inställningarna kan anpassas per scen. Färghantering kan också åsidosättas när du sparar bilder; detta beteende kan ställas in i Output Color Management Properties.

Displayenhet

Färgrymden för den skärm som Blender visas på.

De flesta skärmar är sRGB som standard, men vissa nyare skärmar har möjlighet att använda Rec. 2020. Dessa skärmar har ett bredare färgomfång och kan visa innehåll med högt dynamiskt omfång. Om du har en Apple-skärm kommer du förmodligen att vilja använda Display P3.

Det är viktigt att du kontrollerar ditt operativsystem och dina bildskärmsinställningar för att se till att de stämmer överens med den bildskärm som används för att få en så korrekt bild som möjligt.

sRGB:

Används av de flesta displayer.

Display P3:

Används av de flesta Apple-enheter.

Rec. 1886:

Används av många äldre TV-apparater.

Rec. 2020:

Används för nyare HDR-skärmar med brett gamut.

Visa transformator

Det här är olika sätt att visa bilden på samma displayenhet.

Standard:

Gör ingen extra konvertering förutom konverteringen för visningsenheten. Används ofta för icke-fotorealistiska resultat eller videoredigering där ett visst utseende redan är inbakat i videon.

Khronos PBR Neutral:

En tonmappningstransform som är särskilt utformad för PBR-färgnoggrannhet, för att få sRGB-färger i utdatarenderingen som så troget som möjligt matchar den ingående sRGB-basfärgen i material, under gråskalebelysning. Detta är inriktat på användningsfall för produktfotografering, där scenen är väl exponerad och HDR-färgvärdena mestadels är begränsade till små spegelreflexer.

AgX:

En tonmappningstransformator som förbättrar Filmic och ger mer fotorealistiska resultat. AgX har ett dynamiskt omfång på 16,5 steg och avmättade färger vid hög exponering för att efterlikna filmens naturliga reaktion på ljus.

Filmisk:

En tonmappningstransformator som är utformad för att hantera färger med högt dynamiskt omfång. Filmic är föråldrad och ersätts av AgX som förbättrar hanteringen av mättade färger.

Filmisk logg:

Konverterar till Filmic log färgrymd. Detta kan användas för export till färgklassificeringsprogram eller för att inspektera bilden genom att platta ut mycket mörka och ljusa områden.

Falsk färg:

Visar en värmekarta över bildens intensitet för att visualisera det dynamiska området och hjälpa till att exponera en bild korrekt.

Nedan finns en tabell som visar hur normaliserade linjära färgdata representeras med False Color.

Luminansvärde

Färg

Lågt klipp

Svart

0.0001% to 0.05%

Blå

0.05% to 0.5%

Blå-Cyan

0.5% to 5%

Cyan

5% to 16%

Grön-Cyan

16% to 22%

Grå

22% to 35%

Grön-Gul

35% to 55%

Gul

55% to 80%

Orange

80% to 97%

Röd

Högt klipp

Vit

Raw:

Avsedd för att inspektera bilden men inte för slutlig export. Raw ger bilden utan någon färgrymdskonvertering.

Titta

Välj en konstnärlig effekt från en uppsättning uppmätta filmresponsdata som i grova drag efterliknar utseendet hos vissa filmtyper. Används före färgrymdskonvertering.

Exponering

Används för att kontrollera bildens ljusstyrka (i stops) före färgrymdskonvertering. Den beräknas på följande sätt: \(utgångsvärde = renderingsvärde × 2^{(exposure)}\)

Gamma

Extra gammakorrigering tillämpas efter färgrymdskonvertering. Observera att standardtransformationerna för visning redan utför lämplig konvertering, så detta fungerar främst som en extra effekt för konstnärliga justeringar.

Sekvenserare

Det färgutrymme som Sequencer arbetar i. Som standard arbetar Sequencer i sRGB-rymden, men den kan också ställas in för att arbeta i Linear-rymden som Compositing-noderna, eller i en annan färgrymd. Olika färgrymder ger olika resultat för färgkorrigering, crossfades och andra operationer.

Listan över färgrymder beror på den aktiva OCIO config. De standardfärgrymder som stöds beskrivs i detalj här: Default OpenColorIO Configuration

Skärm

Högt dynamiskt omfång

Aktivera visning med högt dynamiskt omfång i den renderade visningsrutan, utan att begränsa ljusstyrkan. Detta kräver en bildskärm med HDR-stöd och en visningstransformator som är utformad för HDR (Filmic genererar inte HDR-färger).

Den här funktionen stöds för närvarande endast på macOS.

Använd kurvor

Justera RGB-kurvor för att kontrollera bildfärgerna före färgrymdskonverteringen. Läs mer om hur du använder Kurva Widget.

Vitbalans

Justerar färgerna så att en given vitpunkt (uttryckt i färgtemperatur och nyans) blir vit på skärmen.

Som ett alternativ till att manuellt ange värdena finns det också en färgväljare. När en färg väljs ställs temperatur och nyans in så att färgen blir balanserad mot vitt. Detta fungerar bara om färgen är tillräckligt nära en svartkroppsstrålare.

Temperatur

Svartkroppstemperaturen för det primära ljuskällan. Som standard används en vitpunkt D65.

Färgton

Mängden grön/magentaförskjutning av svartkroppskurvan.

../_images/render_color-management_white-balance-curve.png

Kurva för svartkroppstemperatur.

Tips

Vitbalansering kan också utföras som en del av compositing-pipelinen med hjälp av Node för färgbalans

Bildfiler

När du arbetar med bildfiler är standardfärgrymden oftast den rätta. Om så inte är fallet kan bildfilens färgrymd konfigureras i bildinställningarna. En vanlig situation där manuella ändringar behövs är när man arbetar med eller bakar normalkartor eller förskjutningskartor, till exempel. Sådana kartor lagrar faktiskt inte färger, bara data som är kodade som färger. Dessa bilder bör markeras som Non-Color Data.

Bilddatablock lagrar alltid floatbuffertar i minnet i scenens linjära färgrymd, medan en bytebuffert i minnet och filer på en enhet lagras i den angivna färgrymden.

Som standard visas och sparas endast renderingar med renderingen View Transformation tillämpad. Dessa bilder är bilddatablocken ”Render Result” och ”Viewer”, och de filer som sparas direkt på en enhet med operatören Render Animation. Men när man laddar en rendering som sparats i en mellanliggande OpenEXR-fil kan Blender inte automatiskt upptäcka att detta är en rendering (det kan t.ex. vara en bildtextur eller en förskjutningskarta). Vi måste ange att detta är en rendering och att vi vill att transformationerna ska tillämpas, med dessa två inställningar:

Visa som rendering

Visa bilddatablocket (inte bara renderingar) med vytransformation, exponering, gamma, RGB-kurvor applicerade. Användbart för att visa renderade bildrutor i linjära OpenEXR-filer på samma sätt som när de renderas direkt.

Spara som rendering

Alternativ i bildsparoperatören för att tillämpa vytransformationen, exponering, gamma, RGB-kurvor. Detta är användbart för att spara linjär OpenEXR till t.ex. PNG- eller JPEG-filer i visningsutrymmet.

OpenColorIO-konfiguration

Blender levereras med en standardkonfiguration av OpenColorIO som innehåller ett antal användbara displayenheter och vytransformationer. Den referenslinjära Color Space som används är den linjära färgrymden med Rec. 709-kromatiteter och D65-vitpunkt.

OpenColorIO är dock också utformat för att ge en konsekvent användarupplevelse i ”flera olika applikationer” <https://opencolorio.org/#supported_apps>`__, och för detta kan en enda delad konfigurationsfil användas. Blender kommer att använda standardmiljövariabeln OCIO för att läsa en annan OpenColorIO-konfiguration än standardkonfigurationen för Blender. Mer information om hur man ställer in ett sådant arbetsflöde finns på OpenColorIO:s webbplats <https://opencolorio.org/>`__.

Blender använder för närvarande följande färgrymdsregler:

scene_linear

Färgrymd som används för rendering, sammansättning och lagring av alla float precision-bilder i minnet.

data

Färgrymd för icke-färgdata.

aces_interchange

ACES2065-1 färgrymd. Används för att härleda kromatiteter i färgrymden scene_linear, för effekter som svartkroppsemission.

color_picking

Definierar fördelningen av färger i färgplockare. Den förväntas vara ungefär perceptuellt linjär, ha samma gamut som färgrymden scene_linear, mappa 0..1-värden till 0..1-värden i den scenlinjära färgrymden för förutsägbar redigering av materialens albedo.

default_sequencer

Standardfärgrymd för Sequencer, scene_linear om den inte anges.

default_byte

Standardfärgrymd för bilder och filer med byteprecision, texture_paint om den inte anges.

default_float

Standardfärgrymd för bilder och filer med flytande precision, scene_linear om den inte anges.

Standardkonfigurationen för Blender innehåller stöd för att spara och ladda bilder i färgrymden ACES (kod och dokumentation <https://github.com/ampas/aces-dev>`__). ACES-färgrymden är dock större än Rec. 709-färgrymden, så för bästa resultat bör en ACES-specifik konfigurationsfil användas. OpenColorIO tillhandahåller en ACES-konfigurationsfil, men den kan behöva några fler justeringar för att kunna användas i produktionen.

Standardkonfiguration för OpenColorIO

Färgutrymmen

Blenders OCIO-konfigurationsfil är som standard utrustad för att läsa/write filer i dessa färgrymder:

sRGB:

Standard RGB-displayutrymme med Rec. 709-kromatik och en D65-vitpunkt.

Rec.2020:

BT.2020 2.4 Exponent EOTF Display.

Rec.1886:

BT.1886 2.4 Exponent EOTF Display, används ofta för TV-apparater.

Icke-färgad:

Generiska data som inte är färg, kommer inte att tillämpa någon färgtransformation (t.ex. normalkartor).

Linjär Rec.709:

Linjär BT.709-kromatik med vitpunkt enligt belysningsstyrka D65.

Linjär Rec.2020:

Linjär BT.2020 med ljuskälla D65 vitpunkt.

Linjär FilmLjus E-Gamut:

Linjär E-Gamut med ljuskälla D65 vitpunkt.

Linjär DCI-P3 D65:

Linjär DCI-P3 med ljuskälla D65 vitpunkt.

Linjär CIE-XYZ E:

1931 CIE XYZ standard med antagen belysningsstyrka E vitpunkt.

Linjär CIE-XYZ D65:

1931 CIE XYZ med anpassad belysningsstyrka D65 vitpunkt.

Filmisk sRGB:

Liknar sRGB men använder Filmic view-transformationen.

Filmisk logg:

Mellanliggande log färgrymd för Filmic view transform.

Display P3:

Apples Display P3 med överföringsfunktionen sRGB compound (piece-wise) encoding, vanlig på Mac-enheter.

ACEScg:

En ACES-färgrymd som är utformad för att användas för rendering och compositing. Den använder AP1-primärfärgerna, en D60-vitpunkt och en linjär överföringsfunktion. Den här färgrymden liknar ACES2065-1, men har ett mindre färgomfång. Det mindre färgomfånget gör att den bättre kan representera de färger som ryms inom CIE 1931-kromatitetsdiagrammet. Färger som ligger utanför CIE 1931-kromatiteterna är i allmänhet inte viktiga för rendering och compositing eftersom den mänskliga stimulansen inte kan representera dessa färger.

ACES2065-1:

En ACES-färgrymd som använder AP0-primärfärgerna, en D60-vitpunkt och en linjär överföringsfunktion. Den här färgrymden är avsedd för lagring och överföring av data med största möjliga mängd färginformation.