UE 5.1 und Nanite bei Low/Mid-Poly?

  • Morgen :)

    Habe mich die Tage weiterhin erstmal mit Theorien beschäftigt und weiter diverse Tutorials geschaut.
    Mit Version 5.1 sind Nanites auch für Foliages dazu gekommen ,was natürlihch genial ist, da man mit Pflanzen nun auch nicht mehr sparen muss..

    Was mich jedoch stutzig gemacht hat, war ein Kommentar in nem Tutorial, dass die Megascan-Objekte "auch" in Nanite-Qualität daher kommen. Ich habe ein Tutorialvideo gesehen, wo jemand Low-Poly als Nanite genutzt hat - spricht denn etwas dagegen nicht ultrahoch aufgelöste Objekte auch als Nanite zu rendern...oder kann die Performance hier runtergehen?
    Also jetzt einfachere Objekte normal lassen und nur detailieres als Nanite - oder muss alles auf Nanite umgestellt werden, wenn man es schon benutzt?


    Gruß
    Paul

    • Offizieller Beitrag

    Nanite ist sowas wie ein Komprimierungsformat das hochaufgelöstes Mesh intern in kleine Bereiche zerlegt. Dadurch muss nicht das komplette als ganzes gezeichnet werden sondern nur der Teil der vom Player gesehen wird. Eine Art besseres Culling verfahren für Flächen.


    Noch vor ein paar jahren waren wir bei ca 5 Millionen Polygone die bei 60 Fps flüssig angezeigt werden konnten. Mit Nanite vergrößert sich diese Polygonanzahl auf ca 10 Million Tris pro Frame in der Sekunde.

    Nanite arbeitet zwar Performanter aber auch hier gibt es grenzen. Es gibt keinen Grund die Performance mit vollen händen aus dem Fenster zu werfen :) Dass wollte nur mal gesagt haben.


    Um deine Frage zu beantworten: Da Nanite Meshes zerlegt, macht Nanite nur für Meshes sind die zerlegbar sind.


    Hier mal Beispiele:

    1. Mal angenommen du hast eine Riesige Wand oder eine Himmelkuppel mit mehren riesigen Polygonen. Diese Polygone können nicht zerlegt werden und du hättest keine Performance Einsparungen. Hier macht Nanite wenig Sinn.

    2. Nanite befindet sich derzeit noch in der Beta und unterstützt vor allem die alten Shadowmaps nicht. Für Virtuel Shadowmaps brauchst du beispielsweise Nanite.


    Ich würde neue und alte Technik nicht mischen ich glaube das könnte dir vor allem jetzt in der Betaphase auf die Füsse fallen.

  • Zur Funtionsweise hatte ich mir auch schon Videos angeschaut - sowas in der Art habe ich schon letztes Jahr aberlegt...zumindest: was kommt nach dreiecken in der Zukunft? ok..sind immer noch dreiecke, aber näher dran an meiner Atome-Idee ;D

    Die Anzahl Faces ist weit höher. 5-10 Mio sichtbare Faces habe ich schon mit 1050 Ti flüssig gespielt (FS19 z.B.). Mit Nanite geht das mehr in Richtung Milliarden (Scene, die im View dargestellt wird), wie ich bei Youtube gesehen habe.
    Virtual Shadowmaps sind ja noch experimentell und ziehen FPS runter, was ich auch bei einem Vidoe gesehn habe. Durch aktivieren normaler Shadowmaps geht die Framerade gute 150% hoch (war ne Scene mit sehr dichtem gras).
    Wenn nanite die virtuellen shadow maps braucht, dann ist das damit aber auch erledigt, da Foliages nun auch nanite unterstützen.


    Ich habe schon vor Billboards einzusetzen. Da das Spiel nur auf Strassen stattfinden wird, muss ich nicht 50.000 Bäume als Megascan darstellen ;) Es soll ja auch auf älteren Systemen laufen.
    Apropos: ist es möglich on thy fly die Grafikkarte umzustellen in UE? Habe eine 1050Ti vom alten Rechner + 3060 Ti aktuell. MB mit zwei PCIx16 Steckplätzen, wo ich jetzt die alte einbauen wollte. Wäre klasse, wenn man Editor mit der 3060 und das Abspielen selbst mit 1050 machen könnte - dass ich mit Minimumhardware testen kann.


    Das habe ich jetzt für mich als Basis festgelegt:
    - Nanite
    - Lumen (RTX kommt irgendwann dazu)
    - Ultra Dynamic Sky/Weather (gibts das auch mal als Sondernagebot, oder sind es immer 40 dollar?)
    - Niagara (dynamische Pfützen, Nebel, Rauch)
    - VR, wo jetzt Lumen + Nanite auch unterstützt werden seit 5.1 (kommt später; VR werde ich aber für Leveldesign + Tests nutzen)

    • Offizieller Beitrag

    meiner Atome-Idee ;D

    Keine Ahnung ob das jetzt der Wink mit dem Zaunpfahl war. Aber seit der UE5 sind das tatsächlich Atome. Weil in der UE5 steckt die Euclideon Engine. Das Video ist bereits 11 Jahre alt:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Apropos: ist es möglich on thy fly die Grafikkarte umzustellen in UE?

    Hast du dir Unreal Swarm angeschaut ?

  • Keine Ahnung ob das jetzt der Wink mit dem Zaunpfahl war. Aber seit der UE5 sind das tatsächlich Atome. Weil in der UE5 steckt die Euclideon Engine. Das Video ist bereits 11 Jahre alt:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Hast du dir Unreal Swarm angeschaut ?

    Wie cool..habe mir gerade das video ganz reingezogen - das gabs vor 12 Jahren..?? Nie gehört ...und auch kein Spiel gesehen was es genutzt hat. Sehr schade, da die ja tatsächlich um Jahre vorauß waren. Sogar soft shadows :D


    Unreal Swarm scheint ein Netzwerk-Renderer zu sein für Unreal 4. Ich will ja den Unreal Editor über Grafikkarte 1 laufen haben und wenn ich Play drücke soll das über Grafikkarte 2 laufen. Oder zumindest über irgendeine Tastenkombination zwischen beiden umschalten können.

    Habe etwas intensiver gesucht und doch noch was gefunden:
    Addon "Graphics Switching"

    Explicitly choosing which GPU to use - Community / Community & Industry Discussion - Unreal Engine Forums


    Und via Commando gehts wohl auch:

    r.GraphicsAdapter
    Setting the GPU instance in this way is equivalent to using the r.GraphicsAdapter console variable.
    nDisplay Configuration File Reference | Unreal Engine 4.27 Documentation