Shader Fails und deren Lösung

Eure Foren für alle Diskussionen rund ums Thema Modding.
User avatar
x Lethian x
Former GIANTS employee
Posts: 2190
Joined: Thu Mar 02, 2017 12:39 pm

Shader Fails und deren Lösung

Post by x Lethian x »

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:

Image

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! :wink3:
How to report a BUG | How to post a log file | How to upload images
User avatar
HeinzS
Posts: 11728
Joined: Mon May 16, 2011 5:19 pm

Re: Shader Fails und deren Lösung

Post by HeinzS »

wäre es nicht sinnvoll dieses Script den Moddern zur Verfügung zu stellen.(erspart euch auch viel Arbeit)
User avatar
ltl.vamp
Posts: 2444
Joined: Wed Mar 07, 2018 12:16 pm

Re: Shader Fails und deren Lösung

Post by ltl.vamp »

Ich liebe solche Hintergrundinfos. Vielen Dank an Dich/Euch (Auch an HeinzS)!
Xbox Series X, Xbox Series S, Xbox One X, Xbox One
FS17 Platinum > FS19 Premium > FS15 Complete > FS22
Samsung UE65MU8009TX 4KUHDHDR
User avatar
derSchreiner
GIANTS Software | QA Analyst
Posts: 3728
Joined: Fri Jan 01, 2010 8:02 pm
Location: Nürnberg, Franken

Re: Shader Fails und deren Lösung

Post by derSchreiner »

Dieses Script läuft im Moment leider nicht ohne eine DEV Konsole, was auch der Grund ist, warum man zum Testen der Mods vor Ort sein muss und dies nicht von zu Hause aus machen kann.
Grüße derSchreiner

How to report a BUG -> German / English | How to post a log file | How to upload images
User avatar
Rahkiin
Former GIANTS employee
Posts: 753
Joined: Tue Jan 17, 2017 12:45 pm

Re: Shader Fails und deren Lösung

Post by Rahkiin »

(EDIT: Übersetzung ist in der Post unten)

A little background detail for why this all is an issue on consoles and not on PC:

Shaders are pieces of software that run on your graphics card. Most games that run on PC just supply the source code (the shader.xml files in our case) and then they are compiled (turned into programs) when the game starts or when the shader is needed. Import here is that the shader needs to be build for every variation. Variations are both shader configurations (customShaderVariation) but also which textures you use, and in what format the textures are. For example, one house that has a DXT5 texture and another house with a DXT1 texture are 2 different compilations because of the alpha channel. (This is also why you need to use the correct format!)

Now this is not an issue on PC. On console, we are not allowed to compile shaders (or scripts for that matter. Anything, really) so we build them when we release the game and then put the programs in the game. This means, however, that any configuration that is not used in the game, can't be used by a mod either. because it is simply not available. If it is not available, it won't be rendered and you have these big gaps in your mod or map, as you see in the post above.
Our shader checker looks into the combinations used in your mod, compares them to the combinations used in the game, and if it finds it: OK. If it doesn't: Shader Fail.

So make sure you use a known format. For example, you can't add an emissive map to the flags we used in the US map because that combination (flagShader, normal map, albedo and emissive) does not exist. To add a flag, look at the flag in the US or EU map, and its material format (it has a texture, normal map and a glossmap, in this case)

Hope this helps in the process of preventing these failures, and also help you understand why this happens at all.
User avatar
derSchreiner
GIANTS Software | QA Analyst
Posts: 3728
Joined: Fri Jan 01, 2010 8:02 pm
Location: Nürnberg, Franken

Re: Shader Fails und deren Lösung

Post by derSchreiner »

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.
Grüße derSchreiner

How to report a BUG -> German / English | How to post a log file | How to upload images
User avatar
TopAce888
Posts: 17965
Joined: Tue May 15, 2018 6:29 pm
Contact:

Re: Shader Fails und deren Lösung

Post by TopAce888 »

Das heißt also, die Shader Fails tauchen nicht auf weil etwas grundsätzlich falsch gemacht wurde, sondern weil etwas anders als es der eigentliche Standard vorsieht, gemacht wurde (in dem Beispiel dann eine selbstleuchtende Flagge)?
Meine LS22-Mods
Neu-Minibrunn Support Thread
___________________________________________________
log.txt richtig posten / How to post the log.txt
Giants Bilder/Image Server

Mein fraenkforfriends-Code für kostenlos 2GB zusätzlich für dich und mich: OLIW68
Patrick1985
Posts: 3
Joined: Wed Nov 21, 2018 5:38 pm

Re: Shader Fails und deren Lösung

Post by Patrick1985 »

Hallo wäre es nicht vielleicht Sinnvoll bei der Anzahl an aufgelaufenen Mods die noch zu prüfen sind und das ist nur eine frage vielleicht ein paar mehr Leute dran zu setzen um den Prozess zu Beschleunigen? Und wenn ihr die Script Doku veröffentlicht so könntet ihr den Vorgang auch in teilen beschleunigen.Weil dann mehr Leute an dem Problem mit Arbeiten könnten.
Gruß Patrick
User avatar
TopAce888
Posts: 17965
Joined: Tue May 15, 2018 6:29 pm
Contact:

Re: Shader Fails und deren Lösung

Post by TopAce888 »

Du möchtest einen nicht produktiven Prozess, der kein Geld einbringt mit mehr Personal versehen und dadurch mehr Kosten verursachen? 🤔

Ich gebe zu, es ist schade, dass es noch keine weiteren Karten im Modhub gibt, aber das wird sicherlich noch ändern.
Meine LS22-Mods
Neu-Minibrunn Support Thread
___________________________________________________
log.txt richtig posten / How to post the log.txt
Giants Bilder/Image Server

Mein fraenkforfriends-Code für kostenlos 2GB zusätzlich für dich und mich: OLIW68
Ex-Deejay
Posts: 1588
Joined: Wed Nov 14, 2018 5:52 am

Re: Shader Fails und deren Lösung

Post by Ex-Deejay »

x Lethian x wrote: Fri Jan 25, 2019 12:18 pm ... 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.
...
Wäre es da nicht sinnvoller gleich alle Fails im Testbericht anzugeben? Manch ein Modder hat dadurch bereits die Lust am Giants ModHub verloren.
-Man reicht einen Mod ein.
-Giants lehnt ihn ab, mit einer Liste von Shader Fails
-Man behebt die aufgelisteten Fehler und reicht den Mod erneut ein
-dann lehnt Giants ihn erneut ab, wieder mit einer Liste von Shader Fails

im Falle der Shader Fails existiert ja nun dieser Beitrag hier, was echt super ist. Aber weshalb müssen die Modder erst ein Ticket erstellen um einen vollständigen Bericht zu bekommen? Ist das nicht unnötig kompliziert?

Und warum sind solche Details nicht im GDN erklärt?
XaaD

Re: Shader Fails und deren Lösung

Post by XaaD »

hmm,
wenn ich das so lese werde ich gern auf eine weitere begutachtung meiner Map verzichten ich warte nun schon seit über drei wochen.
Und ich hab auch, wenn ich das so lese, sicherlich keinen Plan wie ich solch welche fehler beheben kann.. Sorry aber sowas ist mir dann eine Nummer zu hoch.
HolgerS
Posts: 539
Joined: Thu Nov 24, 2016 4:49 pm
Contact:

Re: Shader Fails und deren Lösung

Post by HolgerS »

HeinzS wrote: Fri Jan 25, 2019 12:24 pm wäre es nicht sinnvoll dieses Script den Moddern zur Verfügung zu stellen.(erspart euch auch viel Arbeit)
Es geht hier um Konsolenmods und nicht um den Skript. Auf PC gibts diese Probleme ja nicht und ohne spezielle Konsole kann man das auch nicht herausfinden bzw ohne lizenzierte Tools, die nur von Microsoft oder Sony ausschließlich an einen Spiele-Entwickler geliefert werden. Die PS und die XB sind nun mal eigene Welten, wo die Hersteller selbst bestimmen, das es sich im Grunde um digitale Tresore handelt. Dafür kann Giants überhaupt nix. Wieviele Spiele auf der Konsole haben die Möglichkeit, so umfangreich Mods zu bringen wie Giants? Das was geht ist Open Source und meist liegt es einfach nur daran, dass die falschen Shader verbaut sind, oder veraltete. Egal ob der Skript offen wäre oder nicht, die Probleme gäbe es trotzdem.

Noch eine kleine Anekdote aus dem letzten Jahr. In Erlangen wurde die Netzwerk Infrastruktur während dem Test eines meiner Mods für Konsolen erneuert. Da die speziellen Testkonsolen von Sony und Microsoft auch eine Neukonfiguration samt Zertifikate benötigten, lag mein Mod ein Paar Tage auf Eis. Man könnte sich darüber lustig machen oder aber bemerken, das Sony in Tokio sitzt, Microsoft in San Francisco. Da liegen 17 Std an einem gleichen Tag bezüglich Entscheidungen zu Updates usw dazwischen. Oder eben ein Netzwerk einzurichten. Aber ich hab nicht gesagt, es könnte so einfach sein, und das und jenes, ich hab gesagt, ist so und fertig. Kenny schrieb extra, es geht um Konsolen Mods. Spätestens da sollte es anfangen zu klingeln, dass das doch ein komplexeres Thema zu sein scheint, als den Skript offen zu legen. Wo gerade Sony und Microsoft eigene Luas verbieten, ist das zu diesem Thema wirklich ein unkluger Vorschlag.
Ex-Deejay
Posts: 1588
Joined: Wed Nov 14, 2018 5:52 am

Re: Shader Fails und deren Lösung

Post by Ex-Deejay »

@XaaD
Und genau da fehlt die "EINE" zentrale Anlaufstelle für Modder. Dafür sollte doch das GDN gedacht sein ?!? Ein Discord ist da definitiv nur geeignet um mal eben schnell was nachzufragen, aber nicht als Nachschlagewerk. Und hier im Forum geht zuviel unter.

@HolgerS
da gibt es bestimmt ein paar Tüftler, die in der Lage wären ein kleines Programm zu schreiben, das abfragt, welche shader in einem Mod verbaut wurden und ob diese im Spiel vorhanden sind.
Das setzt aber voraus, das man eine Auflistung der Shader bekommt von Giants, bzw. das einem erklärt wird wo und wie man die shader findet.
Damit könnte man unnötigen Frust bei den Moddern und Datenstau bei Giants vermeiden, wenn Modder selbst schon eine möglichkeit hätten solche Dinge zu Testen.
Die nächste Konsequenz wäre dann einfach nichts mehr auf Konsolenkompatibilität einzureichen ...
User avatar
HeinzS
Posts: 11728
Joined: Mon May 16, 2011 5:19 pm

Re: Shader Fails und deren Lösung

Post by HeinzS »

x Lethian x wrote: Fri Jan 25, 2019 12:18 pm 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.
@Holger
es wurde mit keinem Wort im 1. Post erwähnt das eine Dev Konsole für diesen Test nötig ist und auch nicht das nur Mods für die Konsolen daraufhin getestet werden. Deine Ausführungen waren auch schon längst bekannt und ob deine Anekdote jetzt hier unbedingt hilfreich ist :confusednew:
HolgerS
Posts: 539
Joined: Thu Nov 24, 2016 4:49 pm
Contact:

Re: Shader Fails und deren Lösung

Post by HolgerS »

Ex-Deejay wrote: Tue Feb 05, 2019 6:45 pm @XaaD
Und genau da fehlt die "EINE" zentrale Anlaufstelle für Modder. Dafür sollte doch das GDN gedacht sein ?!? Ein Discord ist da definitiv nur geeignet um mal eben schnell was nachzufragen, aber nicht als Nachschlagewerk. Und hier im Forum geht zuviel unter.

@HolgerS
da gibt es bestimmt ein paar Tüftler, die in der Lage wären ein kleines Programm zu schreiben, das abfragt, welche shader in einem Mod verbaut wurden und ob diese im Spiel vorhanden sind.
Das setzt aber voraus, das man eine Auflistung der Shader bekommt von Giants, bzw. das einem erklärt wird wo und wie man die shader findet.
Damit könnte man unnötigen Frust bei den Moddern und Datenstau bei Giants vermeiden, wenn Modder selbst schon eine möglichkeit hätten solche Dinge zu Testen.
Die nächste Konsequenz wäre dann einfach nichts mehr auf Konsolenkompatibilität einzureichen ...
Wie ich schrieb, gibts diese Tools aber nur von Sony und Microsoft und die haben Copyright darauf. Wie gesagt, es könnte alles immer so einfach sein ist nicht.

Und Heinz, es war so klar das sowas jetzt kommt. Erstmal einen einfachen Satz auf Basis einer Vermutung raushauen und Leute auf die Falsche Fährte bringen und dann sagen, dass der Post eines anderen, der wesentlich mehr Informationen zum Thema geliefert hat, wenig hilfreich ist. Das sagt ja schon alles. Können wir bitte endlich mal sachlich diskutieren?
Locked