Ich habe einen unendlichen sechseckigen Boden, der durch Tessellieren eines Punktgitters in einem Tessellation-Shader-Paar erzeugt wird:
Beachten Sie, dass dies ein flaches Drahtmodell ist - die "Schatten" sind ein Beleuchtungstrick:
Nun möchte ich dieses Glas als dickes, brechendes Glas erscheinen lassen, bin mir aber nicht sicher, wie ich vorgehen soll.
Das erste, was mir in den Sinn kam, ist zu
- Stellen Sie eine Uniform ein, die die gewünschte "Dicke" der Blöcke enthält
- Verwenden Sie bei der Berechnung der Beleuchtung das Snellsche Gesetz, um die optische Weglänge zu berechnen, die ein Strahl durch den Hex-Block nehmen würde, wenn er tatsächlich so dick wäre, wie es die Uniform "Dicke" sagt, und summieren Sie das Alpha über diese Länge. Das würde die Transparenz geben, behandelt aber keine Dinge wie interne Reflexion / TIR usw.
Ich habe das noch nicht ausprobiert, daher bin ich mir nicht sicher, wie das visuelle Ergebnis aussehen würde.
Letztendlich versuche ich für dieses spezielle Level, den in Tron: Legacy während des Scheibenkampfs verwendeten sechseckigen Glasboden-Look zu erhalten. ( Ein Beispiel finden Sie in diesem Bild .)
Vorschläge?
Antworten:
Dieser Artikel in GPU Gems befasst sich eingehend mit der Brechung, was zu sehr guten Ergebnissen führen kann
Im einfachsten Sinne
Die folgende Auflistung zeigt einen Shader, der diesen Ansatz demonstriert
Die nächsten Bilder veranschaulichen diese drei Schritte
Es gibt fortgeschrittenere Techniken im selben Artikel, die ein viel ansprechenderes Aussehen erzielen können
Für einen ähnlichen Effekt in Unity sollten Sie sich die Wiki-Seite The Refraction Shader ansehen
quelle
Ich werde das von Ihnen gezeigte Bild als Referenz dafür nehmen, wie ich mir den Effekt vorstelle. Der Algorithmus, den ich mir vorstellen kann, ist einfach:
In Bezug auf den Refraktions-Shader können Sie das Glas simulieren, das Sie ausführen können
Ich habe nur an die Idee gedacht, also habe ich sie nicht getestet. Ich bin sicher, es braucht mehr Arbeit. Vielleicht werde ich es tun, wenn ich von der Arbeit zurückkomme.
quelle