[TUT] Lösung der Shader Fails bei Mods auf Konsole

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [TUT] Lösung der Shader Fails bei Mods auf Konsole

    Lethian - GIANTS Software schrieb:


    Hallöchen Freunde, Lethian hier.

    Heute wollen wir Euch näher erklären, wie man Shader Fails lösen kann, die Ihr eventuell von unserem ModHub-Tests zurückbekommt.

    Einige von Euch fragen sich vielleicht: Was sind Shader Fails? Dabei handelt es sich um einen Bericht den uns ein kleines schlaues Skript ausspuckt welches wir beim Mod-Testen durchlaufen lassen. Es zeigt uns, welche Shader oder Materials Probleme auf Konsolen verursachen und welche Elemente der Materials falsch sind oder gänzlich fehlen. Diese Fails können zu Anzeigeproblemen und Fehlern auf Konsolen führen und zum Beispiel so aussehen:



    Die Menge an Shader Fails können bei einzelnen Geräten oder Fahrzeugen niedrig sein, bei Maps aber wesentlich höher ausfallen, da diese viele einzelne Objekte und Edits nutzen, die Probleme haben könnten. Der Testbericht unseres ModHub-Teams könnte wie folgt aussehen:


    ------------------------------------------------------------------------------------------------------------------------------

    Custom shader: data/shaders/treeBillboardShader.xml
    Material attributes 3E3EABBA-00002615
    - MASK_ALPHA_BLENDING
    - MASK_ALBEDOMAP
    - NORMAL_MAP_FORMAT 3CHANNEL
    - MASK_ALLOW_FOG
    - MASK_LIGHTING
    - MASK_USED
    - Custom material id 3E3EABBA
    LightEnvShape attributes 00000000-B0000000
    - use shadow map: no
    - GPU perf class 2
    - Large shadow map filter
    - Non-MSAA

    Nearest hash 3E3EABBA.00002616-00000000.B0000000.
    Material attributes 3E3EABBA-00002616
    - MASK_ALPHA_TESTING
    - MASK_ALBEDOMAP
    - NORMAL_MAP_FORMAT 3CHANNEL
    - MASK_ALLOW_FOG
    - MASK_LIGHTING
    - MASK_USED
    - Custom material id 3E3EABBA
    LightEnvShape attributes 00000000-B0000000
    - use shadow map: no
    - GPU perf class 2
    - Large shadow map filter
    - Non-MSAA

    FAIL (Material maple5LOD_mat, Hash 3E3EABBA.00002615-00000000.B0000000)

    ------------------------------------------------------------------------------------------------------------------------------


    Das obige Beispiel zeigt die Einträge für nur EINEN Shader Fail an - quasi ein Fail pro Material. Einige Mods haben wenige, andere wiederum hunderte von Fails. In unserem Testbericht schicken wir Euch grundsätzlich nur einige dieser Fails zurück, falls es zu viele sind. Wenn Ihr eine gesamte Liste der Fails haben möchtet, dann eröffnet uns in unserem ModHub Messenger ein Ticket und teilt uns dort Eure eMail-Adresse mit. Anschließend können wir Euch die gesamte Liste an Fails per .txt-Datei schicken.


    Nun zur Lösung dieser Fails: Schauen wir uns einmal die Farbcodes hier unten an - ein Shader Fail ist generell in zwei Teile aufgespalten. Der erste zeigt das Material und all seine gegenwärtigen Elemente an während der zweite Teil die Elemente auflistet, die vorkommen sollten, damit der Fail verschwindet und der Mod auf Konsole funktioniert. Ihr müsst hier auf den Unterschied beider Auflistungen achten, um das Problem festzustellen:


    ------------------------------------------------------------------------------------------------------------------------------

    Custom shader: data/shaders/treeBillboardShader.xml <- Der spezifische Shader mit dem Problem, manchmal ist bereits dieser komplett falsch und das Material muss im Idealfall einen anderen nutzen.
    Material attributes 3E3EABBA-00002615
    - MASK_ALPHA_BLENDING <- Dies sind Elemente die in der Auflistung unten fehlen und womöglich falsch sind - sie sind Ursache des Shader Fails.
    - MASK_ALBEDOMAP
    - NORMAL_MAP_FORMAT 3CHANNEL
    - MASK_ALLOW_FOG
    - MASK_LIGHTING
    - MASK_USED
    - Custom material id 3E3EABBA
    LightEnvShape attributes 00000000-B0000000
    - use shadow map: no
    - GPU perf class 2
    - Large shadow map filter
    - Non-MSAA

    Nearest hash 3E3EABBA.00002616-00000000.B0000000.
    Material attributes 3E3EABBA-00002616
    - MASK_ALPHA_TESTING <- Dies sind Elemente die oben nicht auftauchen und fehlen - sie müssen entweder hinzugefügt werden.
    - MASK_ALBEDOMAP
    - NORMAL_MAP_FORMAT 3CHANNEL
    - MASK_ALLOW_FOG
    - MASK_LIGHTING
    - MASK_USED
    - Custom material id 3E3EABBA
    LightEnvShape attributes 00000000-B0000000
    - use shadow map: no
    - GPU perf class 2
    - Large shadow map filter
    - Non-MSAA

    FAIL (Material maple5LOD_mat, Hash 3E3EABBA.00002615-00000000.B0000000) <- Dies ist das Material und sein Name, den Ihr in der .i3d-Datei suchen müsst. Stellt sicher, dass hier die Elemente richtig eingetragen werden.


    Im Idealfall schauen die Einträge wie folgt aus:

    Custom shader: data/shaders/treeBillboardShader.xml
    Material attributes 3E3EABBA-00002615
    - MASK_ALPHA_TESTING
    - MASK_ALBEDOMAP
    - NORMAL_MAP_FORMAT 3CHANNEL
    - MASK_ALLOW_FOG
    - MASK_LIGHTING
    - MASK_USED
    - Custom material id 3E3EABBA
    LightEnvShape attributes 00000000-B0000000
    - use shadow map: no
    - GPU perf class 2
    - Large shadow map filter
    - Non-MSAA


    ------------------------------------------------------------------------------------------------------------------------------


    Sobald diese Veränderungen am Material vorgenommen wurden sollte der Fail behoben sein. Nun könnt Ihr Euren Mod erneut einreichen und wir werden den Fail einmal mehr überprüfen.

    Hoffentlich hilft Euch dieser Post und macht Euer Leben etwas einfacher, solltet Ihr daran arbeiten, Euren Mod Konsolen-fertig zu machen!



    'Rahkiin/derSchreiner - GIANTS Software schrieb:


    Eine kleine genauere Beschreibung, warum das alles ein Problem auf Konsolen und nicht auf dem PC ist:

    Shader sind Software, die auf der Grafikkarte laufen. Die meisten Spiele, die auf dem PC laufen, liefern nur den Quellcode (die shader.xml-Dateien in unserem Fall) und werden dann beim Spielstart oder wenn der Shader benötigt wird, kompiliert (in Programme umgewandelt). Wichtig ist hier, dass der Shader für jede Variation gebaut werden muss. Variationen sind sowohl Shader-Konfigurationen (customShaderVariation) als auch Texturen, die bestimmten Format gespeichert werden müssen. Zum Beispiel, ein Haus, das eine DXT5-Textur hat und ein anderes Haus mit einer DXT1-Textur sind 2 verschiedene Zusammenstellungen wegen des Alphakanals. (Deshalb müssen Sie auch das richtige Format verwenden!)

    Dies ist nun auf dem PC kein Problem, Aber auf der Konsole ist es uns nicht erlaubt, Shader (oder Skripte in dieser Hinsicht. Nichts dergleichen darf in Mods verwendet werden.) zu kompilieren, also bauen wir sie, wenn wir das Spiel veröffentlichen und dann die Programme in das Spiel einfügen. Das bedeutet jedoch, dass jede Konfiguration, die nicht im Spiel verwendet wird, auch nicht von einem Mod verwendet werden kann, weil sie einfach nicht verfügbar ist. Was nicht verfügbar ist, wird auch nicht gerendert und du hast diese großen Lücken in deinem Mod oder deiner Map, wie du im Beitrag oben siehst.
    Unser Shader-Checker untersucht die in deinem Mod verwendeten Kombinationen, vergleicht sie mit denen im Spiel und ob er sie findet: Wenn ja --> OK. Wenn nicht: Shader-Fehler.

    Stellt also sicher, dass ein vorhandenes Format verwendet wird. Beispielsweise könnt ihr den Flaggen, die wir in der US-Karte verwendet haben, keine emissive Map/Textur hinzufügen, da diese Kombination (flagShader, normale Map, Albedo und emissive) nicht existiert. Um eine Flagge hinzuzufügen, schaut euch die Flagge auf der US oder EU-Karte und vor allem das Materialformat an (sie hat eine Textur, eine normale map und eine Glossmap, in diesem Fall).

    Ich hoffe, dies hilft bei der Vermeidung der shaderFails und hilft euch auch es besser zu verstehen, warum dies überhaupt geschieht.


    Quelle