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?