Zunächst einmal here is a question that covers much of the same territory.
Das Problem ist, dass die Mischstufe in einer modernen GPU immer noch sehr begrenzt und fest ist. Sie haben folgende Funktionen zur Auswahl: add, subtract, max, min, und Sie haben a few multipliers.
Ich bin mir ziemlich sicher, dass die Mischmodi, die Sie verwenden möchten, nicht in diesem System implementiert werden können. Overlay erfordert eine Bedingung, die wahrscheinlich nicht bearbeitet werden kann, und Farbton und Sättigung erfordern eine HSV-Konvertierung, die überhaupt nicht durchgeführt werden kann.
Also die Antwort ist - wie Sie sagen - um einen Shader zu erstellen, der zwei Texturen als Eingaben verwendet und sie mit Ihrem benutzerdefinierten Mischmodus kombiniert. Wenn Sie diesen Effekt auf eine ganze Szene anwenden möchten, verwenden Sie Renderziele, um Ihre Szene in eine Textur zu rendern, die als Eingabe für Ihren Shader verwendet werden kann.
vielleicht möchten Sie diese Frage bei http://gamedev.stackexchange.com/ – mauris