Oodle Textur bietet eine schnelle, qualitativ hochwertige Codierung von Texturen in die verschiedenen BCn/DXTn-Formate. Sobald die Oodle Textur konfiguriert ist, läuft sie automatisch im Hintergrund. Sie können die Oodle-Textur global festllegen und sie dann spezifischer für LOD-Gruppen und einzelne Texturen definieren.
Oodle Textur kodiert nicht für ASTC oder andere mobile Formate.
Oodle Textur aktivieren
Das Plugin für Oodle Textur ist in der Unreal Engine standardmäßig aktiviert.
Zusätzlich zum Plugin benötigt Oodle Textur eine Einstellung in der Datei DefaultEngine.ini.
\Engine\Config\DefaultEngine.ini
[AlternateTextureCompression]
TextureCompressionFormat="TextureFormatOodle"
TextureFormatPrefix="OODLE_"
bEnableInEditor=TrueDa Oodle Textur in der Unreal Engine standardmäßig aktiviert ist, sollten diese Zeilen bereits in Ihrer BaseEngine.ini-Datei vorhanden sein.
Wir empfehlen dringend, bEnableInEditor=true zu belassen, um ein konsistentes Verhalten zwischen dem Editor und den verpackten Builds zu gewährleisten. Wenn auf false gesetzt ist, sehen Künstler, die die Kodierungsergebnisse im Editor überprüfen, andere Ergebnisse als die, die das Cook-System erzeugt.
Sie können überprüfen, ob Oodle Textur aktiviert ist, indem Sie das Log untersuchen:
LogTextureFormatOodle: Display: Oodle Texture 2.9.0 init RDO On with DefaultRDOLambda=30
When Oodle für eine bestimmte Textur verwendet wird, enthält das Format das Präfix OODLE_:
LogTexture: Display: Building textures: test (OODLE_AutoDXT, 256X256)
Schlüsselkonzepte für Oodle Textur
Es gibt zwei Konzepte, die Sie verstehen müssen, um Oodle Textur nutzen zu können: RDO (Rate-Verzerrung-Optimierung) und Lambda.
RDO verstehen
RDO ist ein Begriff, der den Austausch von Qualität (Verzerrung) gegen Größe (Rate) bezeichnet. Für die Texturkodierung klingt das seltsam - DXTn/BCn-Texturen variieren in ihrer Größe nicht mit der Qualität, sie haben eine fixierte Größe, die auf dem Format, der Auflösung und der Mip-Anzahl basiert.
Oodle Textur bietet optional eine Möglichkeit, die resultierenden kodierten Texturdaten zu verwalten, so dass, wenn ein uasset, das eine Textur enthält, für die Verteilung über den IOStore / .pak komprimiert wird Dateisystem komprimiert wird und dadurch kleiner wird. Daher reduziert RDO in Oodle Textur nur die Verteilungsgrößen.
Außerdem ist es auf das Kraken-Kompressionsformat abgestimmt. Weitere Informationen finden Sie unter Oodle-Daten.
Lambda verstehen
Der Parameter, der bestimmt, wie stark die Verzerrung ist und wie viel kleiner die resultierende Datei ist, wird als Lambda bezeichnet.
Lambda kann zwischen 0 und 100 eingestellt werden, wobei niedrigere Zahlen für eine geringere Verzerrung und damit für qualitativ bessere Ergebnisse stehen. Ein Lambda-Wert von etwa 30 liefert immer noch qualitativ hochwertige Ergebnisse. Ein Lambda-Wert von 0 deaktiviert RDO vollständig, was zur theoretisch besten Qualität führt. Allerdings empfehlen wir, selbst wenn man die beste Qualität anstrebt, einen Lambda-Wert von 1 zu verwenden, da das Kosten-Nutzen-Verhältnis immer noch sehr gut ist, was zu einer sehr geringen Verzerrung bei vernünftigen Verteilungsgrößengewinnen führt.
Im Allgemeinen erwarten wir, dass lambda global festgelegt ist und nicht oft außer Kraft gesetzt wird. Die Bestimmung eines für Ihr Projekt geeigneten Wertes ist eine gemeinsame Anstrengung, die auf den Anforderungen der Vertriebsgröße basiert. Am besten ist es, wenn Sie Ihr globales Lambda auf den höchsten Wert (niedrigste Qualität) einstellen und je nach Bedarf für LOD-Gruppen oder bestimmte Texturen eine höhere Qualität bzw. ein niedrigeres Lambda festlegen.
Texturen, bei denen es sich nicht um streuende- / Albedo-Maps handelt, erfordern wahrscheinlich ein niedrigeres Lambda (in der Regel 5-20), insbesondere Normal-Maps, da Verzerrungen, die mit dem bloßen Auge nicht sichtbar sind, bei Texturen wie Glanz-Highlight stärker auffallen können.
Konfigurieren der Oodle-Textur
Oodle Textur wird hauptsächlich über die Datei DefaultEngine.ini konfiguriert, stellt aber auch Lambda auf Textur-LOD-Gruppen und auf einer pro-Textur-Basis zur Verfügung.
Globale Konfiguration
Der Abschnitt TextureFormatOodle in der Datei DefaultEngine.ini enthält die globalen Einstellungen für Oodle Textur.
\Engine\Config\DefaultEngine.ini
[TextureFormatOodle]
DefaultRDOLambda=30
GlobalLambdaMultiplier=1.0
bForceAllBC23ToBC7=False
bForceRDOOff=False
bDebugColor=False| Einstellung | Definition |
|---|---|
| Dies ist das RDO-Lambda, das verwendet wird, wenn es nicht anderweitig festgelegt wurde. |
| Damit wird das an den Encoder übergebene Lambda skaliert. Sie dient als Last-Minute-Kontrolle, um die Verteilungsgrößen zu verwalten, ohne einzelne Texturen oder LOD-Gruppen aufspüren zu müssen. Der Wert wird direkt auf das Lambda angewandt, d. h. ein Multiplikatorwert größer als 1 erhöht die Verzerrung und verringert die Qualität, während ein Multiplikatorwert zwischen 0 und 1 die Verzerrung verringert und die Qualität erhöht. Das Ergebnis wird zur Verwendung auf die nächste Ganzzahl gerundet. Dadurch kann RDO nicht deaktiviert werden (das Ergebnis wird mindestens 1 sein). |
| Wenn aktiviert, wird jedes Mal, wenn ein BC2- oder BC3-Format (d.h. DXT3 und DXT5) angefordert wird, Oodle stattdessen eine BC7-Textur komprimieren. BC7 ist in der Regel von besserer Qualität, kann aber je nach Ihren Mindestanforderungen nicht verfügbar sein. |
| Wenn aktiviert, wird RDO immer deaktiviert, unabhängig von einer texturspezifischen RDO-Einstellung. |
| Wenn aktiviert, werden die Texturen zur visuellen Identifizierung als einfarbige Darstellung ihres kodierten Formats komprimiert. Format - Farbe BC1 - Rot (0xff0000) BC2 – Dunkelgrün (0x008000) BC3 - Grün (0x00ff00) BC4 – Dunkelgelb (0x808000) BC5 - Gelb (0xffff00) BC6 – Violett (R = .5f, G = 0.0f, B = .8f) BC7 (Undurchsichtig) – Dunkelblau (0x8080ff) BC7 (Transparent) – Blau (0x0000ff) |
Konfigurieren von Textur LOD-Gruppen
Der Parameter der LOD-Gruppe, der das RDO-Lambda darstellt, heißt Verlustbehaftete Kompressionsmenge. Dieser Parameter wird für LOD-Gruppen in der Datei DefaultDeviceProfiles.ini definiert.
TextureLODGroups=(Group=TEXTUREGROUP_WorldNormalMap,MinLODSize=1,MaxLODSize=8192,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage,**LossyCompressionAmount=TLCA_Low**)Die Menge der verlustbehafteten Kompression kann die folgenden Werte annehmen:
| Wert | Beschreibung |
|---|---|
TLCA_Default | Übernehmen. Wenn sie auf eine Textur festgelegt ist, übernimmt sie von der LOD-Gruppe. Wenn sie für eine LOD-Gruppe festgelegt ist, übernimmt sie von |
TLCA_None | Disable RDO (0) |
TLCA_Lowest | 1 – Beste Qualität, größte Dateigröße. |
TLCA_Low | 10 |
TLCA_Medium | 20 |
TLCA_High | 30 |
TLCA_Highest | 40 – schlechteste Qualität, kleinste Dateigröße. |
Konfigurieren einzelner Texturen
RDO Lambda kann auch für einzelne Texturen mit dem Parameter Menge der verlustbehafteten Kompression eingestellt werden und nimmt die gleichen Werte wie oben gezeigt an.
Um den Parameter für eine einzelne Textur festzulegen:
Doppelklicken Sie im Inhaltsbrowser auf die Textur, für die Sie RDO Lambda einstellen möchten, um sie im Fenster Textur Editor zu öffnen.
Erweitern Sie im Panel Details den Abschnitt Komprimierung und klicken Sie auf das Pfeilsymbol, um die Erweiterten Optionen anzuzeigen.
Verwenden Sie das Dropdown-Liste Menü neben dem Parameter Verlustbehaftete Kompression um den gewünschten Wert auszuwählen.