Jump to content
Unity Insider Forum

ScreenShot Weekend! (ehemals ScreenShot Saturday)


malzbie

Recommended Posts

  • 1 month later...
  • Antworten 350
  • Created
  • Letzte Antwort

Das ist zwar kein Bild sondern ein Video, aber man kann diesen Shader nur so gut zeigen ( 33 MB mp4).
https://streamable.com/434jb

Hintergrund: Ich arbeite seit dem Wochenende an der Portierung eines Bloodshader von NVidea und dies ist das bisherige Ergebnis. Leider ist die Portierung nicht zu 100% geglückt, aber ich habe zumindest große Teile davon in Unity umsetzen können. Der Shader simuliert den Fluss einer Flüssigkeit entlang einer Oberfläche unter Berücksichtigung einer Normalmap und der Gravitation. Leider konnte ich bisher die Richtung der Gravitation nicht dynamisch gestalten, da hier scheinbar eine Umrechnung innerhalb des Shader nicht funktioniert.

Weitere Fortschritte: Der Gravitationsvektor wird nun über den Mesh bestimmt.
https://streamable.com/u36u7

evYIUok.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...
  • 2 weeks later...
  • 3 weeks later...
vor 10 Minuten schrieb malzbie:

Sagenhaft, wie schnell sich diese riesige Welt bei dir aufbaut. Wenn du jetzt noch die Terassen weg kriegst und alles schön smooth ist... :D
Ne, ist schon super so!

Hat mich auch einiges an Zeit gekostet, dass es jetzt alles Flott und ruckelfrei läuft :) 

Feinheiten haben noch Zeit :D 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sieht schon sehr gut aus. Ein paar Anregungen von mir :)
Die Bäume poppen zu stark in das Sichtfeld des Spielers. Hier könntest du ggf. mit LODs arbeiten oder einem System welches die Bäume "einfaded", oder du legst generell Nebel über die gesamte Szenerie über einen Kameraeffekt (damit versteckst du weit entfernte Geometrie, ist aber von der Performance nicht so günstig). Scheinbar poppt auch Geländegeometrie ins Sichtfeld, hier bin ich mir aber nicht sicher, woran das liegt. Blendest du Geometrie zu Laufzeit ein? Vielleicht blendest du hier die Geometrie zu spät ein? Was mir auch auffällt ist ein "schwarzer Rand" an der Geländegrenze, ist der beabsichtigt? Vielleicht gibt es hier noch ein MipMapping-, UV-, Normal- oder ein Bleeding-Problem? Der schwarze Rand verschwindet scheinbar, wenn man näher kommt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb Zer0Cool:

Sieht schon sehr gut aus. Ein paar Anregungen von mir :)
Die Bäume poppen zu stark in das Sichtfeld des Spielers. Hier könntest du ggf. mit LODs arbeiten oder einem System welches die Bäume "einfaded", oder du legst generell Nebel über die gesamte Szenerie über einen Kameraeffekt (damit versteckst du weit entfernte Geometrie, ist aber von der Performance nicht so günstig). Scheinbar poppt auch Geländegeometrie ins Sichtfeld, hier bin ich mir aber nicht sicher, woran das liegt. Blendest du Geometrie zu Laufzeit ein? Vielleicht blendest du hier die Geometrie zu spät ein? Was mir auch auffällt ist ein "schwarzer Rand" an der Geländegrenze, ist der beabsichtigt? Vielleicht gibt es hier noch ein MipMapping-, UV-, Normal- oder ein Bleeding-Problem? Der schwarze Rand verschwindet scheinbar, wenn man näher kommt.

Erstmal Danke für deine Anregungen :) 

Ja die Bäume Poppen noch etwas stark ins Sichtfeld. Liegt einfch daran dass ich ein wenig mit der Walddichte herumgespielt hatte und ich deswegen die Sichtweite erst etwas gedrosselt habe damit nicht zu viele Batches generiert werden da meine CPU vergleichsweise schwach ist. Die Idee mit dem Nebel habe ich auch schon ein wenig benutzt aber dieser ist dann einfach zu dominant und ich möchte dass der Spieler den Terrain weiter sehen kann als die Bäume. Ein zu dominanter Nebel würde den Terrain mit verdecken. Die Geländegemetrie wird zur Laufzeit generiert. Die einzelnen Chunks brauchen einfach zu viel Leistung da ich die Normalenvektoren selbst berechne da Unity mir mit RecalculateNormals keine schönen Ergebnisse liefert bei meinen prozedural erzeugten Meshes. Das ist aber auch gar nicht weiter schlimm, da das kaum noch auffällt wenn man spielt. Im Video habe ich ja auch die Laufgeschwindigkeit extrem hoch eingestellt um möglichst viel zeigen zu können. Wenn man normal läuft, dann wird der Terrain schnell genug generiert sodass das Nachladen der Chunks kaum noch auffällt. Und zum schwarzen Rand: Dieser ist beabsichtigt und wird von einem Image Effekt erzeugt, da ich diesen Look recht angenehm finde, damit man die einzelnen Kanten besser erkennt, was in meinem Spiel druchaus wichtig sein wird (Ob ich den Effekt so drin lasse im finalen Spiel oder ich den noch verändere muss ich mal schauen) :)

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...

Auch wenn es weder vieles noch Spannendes zu sehen gibt, wollt ich doch auch mal zeigen was ich mache.

Derzeitig komme ich nur langsam vorran, aber das liegt einfach daran, das ich mich seid einigen Tagen erst durch das geballte Unity durchprügel. Das ist der Hauptcharakter, um den es sich in meinem ersten kleinen spielchen drehen soll - sie lernt gerade, wie man springt.

Screenshot 1.PNG

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 weeks later...

Zum einen hab ich alles was mit Linq zu tun hat rausgeschmissen. Wenn man so wahnsinnig oft diese Aufrufe machen muss kann man da ganz schön viel sparen. Zum anderen hab ich den Algorithmus selbst ein wenig optimiert.
Zuletzt (was auch ziemlich bemerkenswert ist) hab ich den Code einfach aus Unity raus- und in eine seperate DLL reingeschmissen. Allein das war noch mal eine Leistungssteigerung von ~25%
Das kann ich nur empfehlen, wenn man ein kritisches Stück an Code hat. Macht es gleichzeitig auch noch einfacher das Zeug außerhalb von Unity weiter zuverwenden. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zitat

Zuletzt (was auch ziemlich bemerkenswert ist) hab ich den Code einfach aus Unity raus- und in eine seperate DLL reingeschmissen. Allein das war noch mal eine Leistungssteigerung von ~25%

Ist interessant, aber gilt das auch für ein Build? Weil das die DLL im Editor schneller ist war zu erwarten.
PS:
Planst du noch ein NavMesh anzubinden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Im Build hab ich noch nichts getestet.

Und nein. Der Algorithmus ist auf ein normales Grid ausgelegt, so einfach lässt sich das nicht durch NavMesh o.ä. ersetzen.

Ich plane aber sowas wie ein LOD System für's Raster zu schreiben, damit die Pathfinding Lösung natürlich auch im größeren Maß einsetzbar ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

Ankündigungen


Hy, wir programmieren für dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×
×
  • Neu erstellen...