Jump to content
Unity Insider Forum

Eigene Terrainengine (Brush: Shader oder Projector?)


Bixxler

Recommended Posts

Hallo liebe Gemeinde,

ich möchte ein Terrain Editor erstellen. Nun stehe ich vor folgenden Problem.. Wie auf dem Bild zu sehen ist, würde ich gerne wissen wie mann diesen Brush effekt erhält.

Geschieht das im Shader selber?..  der Brush geht ja über das Terrain hinaus.  Alle versuche die ich veruscht haben gehen nicht über das Terrain hinaus.

Geschieht das eventuell über einen Projector?

screen_unity.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gute Frage, ich glaube der Brush orientiert sich am darunterliegenden Mesh und "berechnet" dann die Grafik entsprechend der Mesh-Vertices die im umschlossenen Bereich liegen. Ein Projektor ist es denke ich nicht, der würde bei meinem berechneten Terrainobjekt keine Probleme bekommen:

QcCdc0D.png


Zudem sind nach meiner Meinung solche Veränderungen des Shapes für einen Projektor auch eher untypisch (ok ich habe das Terrain hier auch böse verformt 😜:

j6Ub67J.png

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sieht für mich so aus  als ob er da einfach die Textur des Kreises weiter malt und vollendet. Man sieht aber wie die Kante des Brushes erst noch bis zum Boden des Terrains geht und dann erst den Kreis weitermalt, für sich das berechnet aus:

P6JVSuJ.png

 

Wie gesagt sieht für mich so aus als ob er die Vertices des Meshes ans Ränder nimmt und dann einen Kreis extrapoliert und dann auf dieses extrapolierten Kreis eine Textur hineinrendert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier kannst du sehen was ich oben geschrieben habe, Ich habe hier als Test ein Pixel aus der Heighmap des Terrains nach oben gezogen und die Spitze besteht dabei aus exakt 4 Vertices. Der berechnete Kreis orientiert sich dabei an 2 Vertices die in "seinem Bereich" liegen.

jeBTb4r.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wobei am Ende bin ich mir nun doch nicht mehr sicher, kann auch sein das es ein Projektor ist der einfach an der Normalen der Oberfläche entlangwandert, das wäre für dich auf jeden Fall die einfachste Lösung ;) 

Da sich er Kreis hier auch zwischen den Kanten der Vertices bewegt (aber auch das lässt sich berechnen, wird dann aber schon komplex):

XnbEVoE.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Auf dem Terrain selber kann ich das ohne Probleme lösen, nur ich komme nicht über den Rand hinnaus . Im Shader selber kann ich auch keine Vertices hinzufügen (die ja für den Kreis nötig wären). Ich werd es wohl mal mit dem Projector versuchen, Falls es jemand weiß wie mann es anders lösen kann, bitte melden 😃

 

Unity-2020-07-11-21-38-57-03.gif.b7cff272e8fef48aa382533bed03ae2f.gif

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke er merkt schon das da der Mesh zu Ende ist und zeichnet dann den Kreis einfach weiter: Wenn der Kreis nur eine 2D-Textur ist die im Screenspace gezeichner wird (also wie UI) dann stört ihn das nicht weiter. Komplex wird dann aber die Geschichte diese UI-Textur an die Vertices des Meshes anzupassen

Hier sieht man auch, dass plötzlich der Kreis hinter der Geometrie gezeichnet bzw berechnet wird und daher ein Stück des Kreises verschwindet, ein Projektor wäre denke ich immer voll sichtbar:

b37KMkS.png

Ok nein stimmt auch nicht ich geb es auf :)

p3glWdQ.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke wenn du neben dem Terrain den Brush haben will würde der Projektor schon eine gute Lösung sein, den anderen Weg die Textur anhand der Vertices des Meshes zu berechnen stelle ich mir schon recht komplex vor.

Ah wobei der Projektor kann auch nicht neben einem Mesh weiter zeichen 😁 auch das spricht wieder dafür das es eine UI-Textur ist.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...