Ich versuche, den von Jorge Jimenez in dieser Präsentation erläuterten Parallax Refraction-Effekt zu implementieren : http://www.iryoku.com/downloads/Next-Generation-Character-Rendering-v6.pptx und habe einige Schwierigkeiten. Hier ist ein Screenshot des interessanten Teils.
In diesem Dokument fehlen jedoch einige Erklärungen, insbesondere im zweiten Teil der physikalisch basierten Refraktion .
Folgendes habe ich im Moment erreicht.
Dies ist der einfache Parallax Refraction- Effekt. Wie Sie im Screenshot sehen können, tritt bei Streifwinkeln in der Iris ein kleiner Fehler auf, wenn der Parallax Scale-Wert zu hoch ist.
Dies wird durch die Parallaxenberechnung verursacht. Gibt es jedoch einige Tricks, um solche Probleme zu vermeiden oder zu minimieren?
Ich möchte im Moment nicht tiefer in die Parallaxenzuordnung einsteigen, daher möchte ich keine steile Parallaxenzuordnung oder Parallaxenokklusionszuordnung verwenden.
Hier ist der Code. Nichts wirklich Besonderes.
// height value comes from a texture
float2 offset = height * viewDir;
offset.y = -offset.y;
texcoord -= ParallaxScale * offset;
// Next there is the texture sampling with the texcoord value
Ich habe auch eine andere Frage nach dem Physikalisch basierten Refraktion Teil , das ist wirklich nicht gut erklärt und ich fehle , wie einige Werte berechnet werden , wie refractedW
, frontNormalW
oder heightW
. Wenn jemand einige Erklärungen zu diesen Werten geben könnte.
Vielen Dank.
Während ich mit Unity arbeite, habe ich eine interessante Methode gefunden, um den Parallaxenversatz im Motor zu berechnen. Es ist nicht physikalisch basiert, liefert aber bessere Ergebnisse als die klassische Parallaxenbrechung.
quelle