Wie kann ich einen Kurzschnitt-Gras-Effekt implementieren?

22

Ich habe mir einige Screenshots von Spielen wie der Rocket League und der FIFA angesehen:

Raketenliga

Raketenliga

FIFA

und ich begann mich zu fragen, ob man den Abkürzungseffekt erzielen würde.

Ist es ein Shader? Ist es tatsächliche Geometrie? Oder nur texturierte Quads? Wenn jemand mich in eine Richtung weisen könnte, wäre das sehr dankbar.

Daniel Holst
quelle
5
+1, sehr interessante Frage. Ich würde mir vorstellen, dass es wahrscheinlich ein Shader ist (Geometrie würde wahrscheinlich zu Verzögerungen führen, texturierte Quads würden wahrscheinlich viel flacher aussehen), aber ich bin mir nicht ganz sicher.
Superdoggy
2
In Software-Renderern wird normalerweise mit Verschiebungs-Mapping und vielen Vertices gearbeitet. Bei näherer Betrachtung scheint es, dass sie dies auch hier verwenden, mit sehr klugem LOD. Verdrängungs-Shader werden höchstwahrscheinlich verwendet.
Altar
Ich denke, sie verwenden Parallaxen-Mapping. Da bin ich mir in den Rocket League-Screenshots ziemlich sicher.
Tara
@akaltar ja ich denke du hast recht damit. Und wie auch immer sie das LOD gemacht haben, es ist zu 100% nahtlos
Daniel Holst
Ich werde versuchen, dies mit Shadern und Tessellation nachzubilden.
Daniel Holst

Antworten:

7

Vielleicht möchten Sie sich mit der Technik des Fellschattierens befassen. Dies ist, was ich für diese Art von Gras verwenden würde, da je kürzer das Gras ist, desto besser die Leistung (weniger Schichten).
Grundsätzlich funktioniert dies, indem dieselbe Oberfläche mehrmals in kleinen Schritten überlagert wird: wenige Schichten

Bildbeschreibung hier eingeben

Sie können auch den horizontalen Versatz ändern, um das Gras gebogen aussehen zu lassen.

Martin Ciz
quelle
Das ist ziemlich interessant, so dass ich denke, ich könnte vorschlagen, mit diesem Artikel zu beginnen
Leggy7
2

Es ist höchstwahrscheinlich ein Shader, der Parallax Occlusion Mapping verwendet , bei dem mit einer normalen Karte Tiefe und Schatten in einer Textur "gefälscht" werden. Beispiele finden Sie HIER .

Edit: Wie @Leggy hervorhob, ist es wahrscheinlich wahrscheinlicher, dass es sich um eine Verschiebungskartierung handelt, da der Fuß zwischen dem Gras zu schweben scheint. Wie auch immer, es ist eine Art Höhen-Mapping-Shader :)

Bluk
quelle
Ich glaube nicht, denn in diesem Fall würde der Fuß nicht hinter den Blättern auftauchen. Die Verschiebungszuordnung klingt für mich am wahrscheinlichsten
Leggy7
Ich denke, das wäre wahr, wenn es nicht kurzes Gras wäre, wo man den Boden "absenken" kann, und wenn ich mich richtig erinnere, ist Parallaxen-Mapping schneller zu berechnen. Aber vielleicht hast du recht, ich bearbeite meine Antwort.
Bluk
2
Sie können die Parallaxenokklusionszuordnung verwenden und in den Tiefenpuffer schreiben, um den Fuß zu okkludieren. Dies ist höchstwahrscheinlich die verwendete Technik. Der Uber Shader schaut sich dazu die herunterladbare Demo an. assetstore.unity3d.com/de/#!/content/39959
Seph