Wie kann ich einen Shader erstellen, der die gesamte Geometrie "durchschneidet" und nur den Clearing-Hintergrund in Unity rendert? Ein Beispiel:
Das ist ein Prisma in einem riesigen weißen kastenförmigen Raum. Die Oberfläche des Prismas rendert nur die Skybox der Szene (einen Sternenhimmel). Ich habe mehrere Kameras verwendet, was ziemlich ineffizient ist ... Es muss einen Weg geben, nur Shader zu verwenden.
Wie kann ich das machen?
Einige Optionen, um den gewünschten Effekt zu erzielen - aber sie sind kostenpflichtig:
oder
Ich vermute, dass es einen Weg geben muss, dies auch durch Verwendung / Missbrauch des Z-Puffers zu tun - aber Sie möchten wahrscheinlich die 'Lochpolygone' mit ihrem echten Z z-testen und dann ein anderes Z schreiben. Sie könnten es wahrscheinlich verwenden Mehrere Durchgänge und der Schablonenpuffer - 3-maliges Zeichnen des Lochs mit dem so eingerichteten Renderstatus könnte funktionieren:
Sie müssten immer noch in einer bestimmten Reihenfolge zeichnen - zuerst die Umgebung, dann die Löcher und zuletzt die Skybox.
quelle