Shader Fails und deren Lösung

Eure Foren für alle Diskussionen rund ums Thema Modding.
Ex-Deejay
Posts: 1588
Joined: Wed Nov 14, 2018 5:52 am

Re: Shader Fails und deren Lösung

Post by Ex-Deejay »

Ich finde es wurde sehr ausführlich auf das Thema eingegangen und erklärt. An diesem Punkt sollte man das Thema vielleicht schließen, bevor es durch unnütze Diskossionen vermüllt wird. Angepinnt ist es schon und wer jetzt noch Hilfe benötigt bekommt die dann auch sicherlich in einem eigenen Thread oder kann im Discord nachfragen.
User avatar
ImpTS
Posts: 178
Joined: Wed Nov 09, 2016 3:24 pm

Re: Shader Fails und deren Lösung

Post by ImpTS »

derSchreiner wrote: Wed Feb 06, 2019 8:34 am
Man bekommt in den aller meisten Fällen sogar ganz genau beschrieben, wie der jeweilige shaderFail zu beheben ist, wenn ein Modder aber der Meinung ist, er muss unbedingt etwas anders machen, als es vorgesehen ist, dann wird das nicht funktionieren. Ein Grundrahmen zum Beispiel braucht den vehicleShader, wenn er dann noch eine Farbwahl bekommen soll, dann wird noch die customShaderVariation="colorMask" (mit den entsprechenden Texturen und Texturformaten). Wenn aber der Grundrahmen die customShaderVariation="Decal", oder andere bekommt, dann geht es eben leider nicht.
Hallo Schreiner, ich fühl mich grad so angesprochen, daher hier nochmal das explizite Beispiel:

Diese Material stammt aus dem originalen New Holland C232

Code: Select all

<Material name="roofGrid_mat" materialId="14" cosPower="20" specularColor="1 1 1" ambientColor="1 1 1" customShaderId="3" customShaderVariation="Decal_colorMask">
      <Texture fileId="28"/>
      <Normalmap fileId="29"/>
      <Glossmap fileId="30"/>
</Material>
Das ist auch genau das was ich gebraucht hätte und verwenden wollte. Die Textur wird hier im DXT5 benötigt für den Alphakanal. Euer Debug-tool schmeißt da jedoch einen shader Fail aus. Der Fix ist auch ganz einfach. In die oberste Zeile muss der Eintrag: alphaBlending="true"
Leider führt dies bei komplexeren Modell zu teils erheblichen Darstellungsfehlern. Das ist sicher auch der Grund warum es bei diesem Modell so angewendet wurde.


Mittlerweile konnte ich das Problem einigermassen beheben/reduzieren und warte gespannt auf den nächsten Test von euch. Trotzdem würde mich auch weiterhin interessieren was es damit auf sich hat. Werden einige der originalen Modelle dann für Konsole nochmal angepaßt?

Ich kann mir auch gut vorstellen das so ein Debugtool Fails classifiziert. ZB. in:

- Fehler die zu Abstürzen führen
- Fehler die erhebliche Performanceeinbrüche verursachen
- Fehler die optische Fehldarstellung zur Folge haben
- Fehler bei denen Etwas vom im Debugtool eingegebenen Standard abweicht, aber durchaus zulässig ist
--> kann recht hilfreich sein um menschliche Flüchtigkeitsfehler zu entdecken
--> trotzdem bleibt die Option es bei Bedarf zu ermöglichen

Vor Allem dieser Shader-Fail mit dem AlpaBlending erscheint mir in letztere Klasse zu gehören. Im 17er hatte ich damit noch keine Probleme. Die Anwednugn ist jetzt also nicht neu. Neu ist sicher nur das DebugTool. :-)

Klar im 19er wurde die Engine weiter entwickelt und es ist immer sinnvoll gewisse Standards zu erreichen. Trotzdem bleibt mein Frage.
Was hat es auf sich mit dem Alphablending? Welche Probleme verursacht das deaktivierte Alphablending? Gibt es Grenzwerte für Polygonanzahl, Texturgröße, etc. bei dem es noch zulässig wäre den Shader so zu verwenden wie im oben zitierten Material?


Das ist eine vernünftige sachliche Frage, deren Antwort mir bei meiner weiteren Arbeit sehr helfen würden?
Der aktuelle Fix reduziert wie gesagt das Problem nur und schafft teilweise auch Neue. Ich brauche mehr Texturspeicher, mehr Materialien am Modell, mehr Objekte am Modell etc.. Das erscheint mir insgesamt ungünstiger für Performance und Stabilität.
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 »

Hallo ImpTS,

Dein Beispiel hier vom NH C232 verursacht keinen shaderFail, ich hab den gerade als Mod erstellt und das getestet.
In diesem Beispiel ist ein handelt es sich um ein Teiltransparentes Gitter, deswegen braucht es eine Diffuse Textur mit alphaChannel und der passenden shaderVariation und ohne alphaBlending.

Das alphaBlending muss bei Decals/Aufkleber aktiv sein, ebenfalls mit der customShaderVariation Decal um diese korrekt dar zu stellen, wie dau ja auch selbst schon bemerkt hast.

Code: Select all

    <Material name="lemken_decal_color" materialId="2" diffuseColor="0.5 0.5 0.5 1" cosPower="20" specularColor="1 1 1" ambientColor="1 1 1" alphaBlending="true" customShaderId="3" customShaderVariation="Decal_colorMask">
      <CustomParameter name="colorMat3" value="0 0.235 0.797 0"/>
      <CustomParameter name="colorMat2" value="1 1 1 0"/>
      <CustomParameter name="RDT" value="1.0 1.0 0.0 0.0"/>
      <CustomParameter name="colorMat0" value="0 0.235 0.797 0"/>
      <CustomParameter name="colorMat1" value="1 1 1 8"/>
      <CustomParameter name="colorMat6" value="1.00 0.10 1.00 1.0"/>
      <CustomParameter name="colorMat7" value="0.10 1.00 1.00 1.0"/>
      <CustomParameter name="colorMat4" value="1.00 1.00 0.10 1.0"/>
      <CustomParameter name="colorMat5" value="0.05 0.05 0.05 1.0"/>
      <CustomParameter name="dirtColor" value="0.20 0.14 0.08 0.0"/>
      <Normalmap fileId="4"/>
      <Glossmap fileId="5"/>
    </Material>
Das hier im Code ist dein material, bei dem dieser shaderFail ausgegeben wird:

FAIL (Material lemken_decal_color, Hash AF59D936.00002834-00000000.B0000003)

Du hast dieses Material lemken_decal_color benannt, mit der shaderVariation Decal_colorMask, was aber nicht geht, da du keine Diffuse Textur verwendest. Verwirrend ist hierbei auch noch, das es sich um den Grundrahmen handelt, nicht um ein Decal/Aufkleber.


An den Modellen im Basegame wird nichts verändert zu der Konsolen Version, das Tool mit dem die shaderFails geprüft werden, vergleicht alle Materails aus dem Basegame (Shader, customShaderVariation und die Entsprechenden Texturen) mit den Materials aus dem Mod, gibt es hier keine Übereinstimmung kommt es zu dem shaderFail, folglich können diese shaderFails NUR auftreten, wenn etwas anders ist, als es das baseGame vorgibt.
Grüße derSchreiner

How to report a BUG -> German / English | How to post a log file | How to upload images
User avatar
ImpTS
Posts: 178
Joined: Wed Nov 09, 2016 3:24 pm

Re: Shader Fails und deren Lösung

Post by ImpTS »

Das von dir zitierte Material habe ich erst zum Test eingeschickt, nachdem erstere Lösung abgelehnt wurde. Es ist einer meiner Versuche eine Korrekturlösung zu finden. Durch das Auslassen der Diffuse mit Alphakanal, wird das Modell trotz Alphablending korrekt dargestellt.

Aber ich schicke es gern nochmal mit dieser Materialkonfiguration ein, das wäre für mich optimal.

Beim Fastrac4220 habe ich folgende Einträge gefunden:

Code: Select all

<Material name="fastrac4220Grid_mat" materialId="19" cosPower="50" specularColor="1 1 1" ambientColor="1 1 1" alphaBlending="true" customShaderId="4" customShaderVariation="secondUV_colorMask">
      <CustomParameter name="colorMat2" value="0.0179 0.0179 0.0179 0"/>
      <CustomParameter name="colorMat3" value="0.0179 0.0179 0.0179 0"/>
      <CustomParameter name="colorMat0" value="0.0179 0.0179 0.0179 0"/>
      <CustomParameter name="colorMat1" value="0.0179 0.0179 0.0179 0"/>
      <CustomParameter name="colorMat6" value="0.0179 0.0179 0.0179 0"/>
      <CustomParameter name="colorMat7" value="0.0179 0.0179 0.0179 0"/>
      <CustomParameter name="colorMat4" value="0.0179 0.0179 0.0179 0"/>
      <CustomParameter name="colorMat5" value="0.0179 0.0179 0.0179 0"/>
      <Texture fileId="1"/>
      <Normalmap fileId="2"/>
      <Glossmap fileId="3"/>
</Material>

Code: Select all

<Material name="fastrac4220Grid_mat1" materialId="21" cosPower="50" specularColor="1 1 1" ambientColor="1 1 1" customShaderId="4" customShaderVariation="secondUV_colorMask">
      <CustomParameter name="colorMat2" value="0.9658 0.4368 0.0143 0"/>
      <CustomParameter name="colorMat3" value="0.9658 0.4368 0.0143 0"/>
      <CustomParameter name="colorMat0" value="0.9658 0.4368 0.0143 0"/>
      <CustomParameter name="colorMat1" value="0.9658 0.4368 0.0143 0"/>
      <CustomParameter name="colorMat6" value="0.9658 0.4368 0.0143 0"/>
      <CustomParameter name="colorMat7" value="0.9658 0.4368 0.0143 0"/>
      <CustomParameter name="colorMat4" value="0.9658 0.4368 0.0143 0"/>
      <CustomParameter name="colorMat5" value="0.9658 0.4368 0.0143 0"/>
      <Texture fileId="1"/>
      <Normalmap fileId="2"/>
      <Glossmap fileId="3"/>
</Material>
Sehen sehr ähnlich aus und unterscheiden sich lediglich beim Eintrag für das Alphablending. Ich habe euch auch eine Version mit letzterer Materialkonfiguration eingesendet und ebenfalls eine Absage erhalten.


Erweiterte Fehlersuche

Daher auch meine Frage ob es Grenzwerte gibt für den Einsatz dieser recht seltenen angewendeten Konfiguration gibt.
Mir ist auch aufgefallen das mein 3D-Programm immer 3-UV-Kanäle exportiert und Maya dieses auch über das fbx-Format importiert. Ich nutze den nicht, aber kann es sein das der Giants-Exporter im Maya den irgendwie mit ins i3d exportiert und das Probleme auslöst beim Testen.


Warum 2 UV-Kanäle?
Ja ich finde es total entspannend meine Modell komplett mit 2 UV-Kanälen zu erstellen. :-)
Ich brauch nur wenig normal-Map, habe trotzdem viele und hohe Details. Kann in Ruhe die Oberflächenbeschaffenheit und Farbe festlegen. Brauche auch nicht auf die Texturauflösung am Modell zu achten. In meinem Rahmen sind auch Alphas verbaut und Änderungen am Modell sind leicht realisierbar, ohne ständig auf die Aufteilung meiner Flächen auf der UV achten zu müssen.
Erst wenn ich damit fertig bin und das finale Modell steht backe ich den zweiten UV-Kanal. Sozusagen der Effektkanal. Dann weiß ich die Texturauflösung auf den Flächen ist konstant, lasse die AO rendern und male Schmutz und Abnutzung auf das Modell.
Das ist ein genialer Workflow und spart noch dazu Texturspeicher. Kann ich nur empfehlen. *thumbsup*
User avatar
agestar
Posts: 4502
Joined: Sat Jul 19, 2008 7:42 am
Location: Bayreuth
Contact:

Re: Shader Fails und deren Lösung

Post by agestar »

Also das mit den ShaderFails habe ich jetzt einigermaßen verstanden. Aber wie ist das, wenn ich jetzt beim Einsenden in den Kommentar reinschreibe das ich den mod NICHT auf Konsole haben möchte
Greetz agestar
Hier wird Wert auf einen gepflegten Umgangston gelegt
Probleme mit Mods lassen sich meistens nur mithilfe des LOG.TXT lösen
Wo Du den log.txt findest steht hier
Das Forum vom LS Mapping Team findest Du HIER
Den Discord vom LS Mapping Team findest Du HIER
User avatar
TopAce888
Posts: 17965
Joined: Tue May 15, 2018 6:29 pm
Contact:

Re: Shader Fails und deren Lösung

Post by TopAce888 »

Dann spielen Shader-Fails keine Rolle.
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
Locked