Jump to content
Unity Insider Forum

Unity Projekt für Meta Quest 2 Optimieren brauche Hilfe?


VinVenom

Recommended Posts

Hallo Leute, ich habe ein Unity Projekt für die Quest 2 angefangen, ich bin zwar Einsteiger aber habe einige brauchbare Video Tuts gefunden die gut erklären wie man ein Projekt lauffähig auf der Quest bekommt.

Und zwar Baue ich die Umgebung und die Gegenstände in meinem Projekt mit SketchUp, und schiebe das gesamte Projekt dann in Unity 2021.3.3f, Texturen Import klappt bis auf einige Gegenstände auch problemlos. Mein Gebäude in dem man sich bewegen kann ist sehr groß und offen und hat relativ viel Glasflächen.

Und eins meiner Probleme ist, das ich noch nicht genau versteh wie Unity Funktioniert und Rendert, ob es mein Komplettes Gebäude Rendert, oder nur den teil den meine VR Kamera sieht. Und wie ich sowas genau einstellen kann, denn bei einigen Passagen in meinen Gebäude wo viel Möbel stehen Fängt das Bild an etwas zu stocken, ich schätze die FPS bricht dann ein. Wobei ich ja extra licht und schatten alles Deaktiviert habe.

Teilweise kommt es mir auch so vor als ob Unity immer komplette Gruppen Rendert, kann mir das jemand erklären? Also was ich damit meine wenn ich mit SketchUp bestimmte dinge erstelle und diese dann Gruppiere und Unity das als Gruppe übernimmt, ob Unity dann immer die Komplette Gruppe Rendert was möglicherweise manchmal unvorteilhaft ist wenn ein großerteil außer Sichtweite liegt?

Ich habe auch mal ein Auto mit vielen Details in mein Gebäude gestellt, wo die Kamera anfangs noch flüssig lief, aber als ich versuchte um das Auto drum rum zu laufen hat sich die Quest 2 komplett aufgehangen, und ich konnte nicht mal mehr das Menü aufrufen. 

 

Ich wüsste gern wie ich das Projekt optimieren kann das sowas nicht mehr vor kommt. Vielleicht gibt es auch Möglichkeiten abschnitte in Level zu unterteilen, so das Objekte erst dann vollständig geladen werden wenn man in dessen nähe kommt?

 

Wäre toll wenn ihr mir ein paar hilfreiche antworten geben könntet!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin!
Ich will nur mal schnell ein paar grobe Dinge erklären, die dir aber weiter helfen könnten.

Und zwar rendert Unity ( eigentlich alle Engines) immer nur das, was im Sichtfeld der Kamera ist. Das bedeutet aber nicht, dass Unity erkennt ob eine Wand etwas verdeckt.
Ist es in Richtung der Kamera, wird es auch berechnet.
Willst du so etwas verhindern kannst du Occlusion Culling nutzen: https://docs.unity3d.com/Manual/OcclusionCulling.html

Jedes Objekt, welches auch nur zum Teil in der Kamera ist, wird komplett berechnet. Ist dein Haus, also das ganze Gemauerte nur ein Mesh, dann wird es auch komplett berechnet. Besteht das Haus aus vielen Einzelobjekten, werden nur die Objekte berechnet, die auch sichtbar sind. Es macht also Sinn, nicht alles zu einem Mesh zusammenzuführen, wenn es sehr groß ist.
Andererseits ist es für die Berechnung gut, wenn wenn so wenig Objekte wie möglich da sind. Du kannst ein Auto aus vielen Objekten zusammen stellen, was auch Sinn machen kann wenn sich z.B. die Motorhaube und die Türen öffnen lassen sollen, oder aber weniger Objekte nutzen wenn die Türen und Haube sich nicht öffen lassen müssen.
Du musst jetzt aber nicht alles 2Mal bauen, denn Unity kann Objekte, die das Selbe Material haben auch automatisch zusammen fassen wenn sie static sind. Das nennt sich static batching: https://docs.unity3d.com/Manual/static-batching.html

Diese Dinge kosten etwas mehr CPU Leistung, aber die GPU wird dadurch entlastet.

Ansonsten solltest du immer schauen, dass du so wenig Poygone wie möglich in der Szene hast. Alles nicht bewegliche auf static stellen und evtl. Licht und schatten backen.
Deine Materialien (Shader) sparsam nutzen. Jedes kleine Effektlein kostet einen Durchlauf mehr bei der Berechnung.

Nutze die Stats Anzeige (Oben rechts beim Gameview) um schon einmal zu sehen, was da alles in der Szene los ist.
Nutze den Profiler um genauere Leistungsanzeigen zu sehen. 

Das wars erstmal von mir. :)

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 31.5.2022 um 10:09 schrieb malzbie:

Moin!
Ich will nur mal schnell ein paar grobe Dinge erklären, die dir aber weiter helfen könnten.

Und zwar rendert Unity ( eigentlich alle Engines) immer nur das, was im Sichtfeld der Kamera ist. Das bedeutet aber nicht, dass Unity erkennt ob eine Wand etwas verdeckt.
Ist es in Richtung der Kamera, wird es auch berechnet.
Willst du so etwas verhindern kannst du Occlusion Culling nutzen: https://docs.unity3d.com/Manual/OcclusionCulling.html

Jedes Objekt, welches auch nur zum Teil in der Kamera ist, wird komplett berechnet. Ist dein Haus, also das ganze Gemauerte nur ein Mesh, dann wird es auch komplett berechnet. Besteht das Haus aus vielen Einzelobjekten, werden nur die Objekte berechnet, die auch sichtbar sind. Es macht also Sinn, nicht alles zu einem Mesh zusammenzuführen, wenn es sehr groß ist.
Andererseits ist es für die Berechnung gut, wenn wenn so wenig Objekte wie möglich da sind. Du kannst ein Auto aus vielen Objekten zusammen stellen, was auch Sinn machen kann wenn sich z.B. die Motorhaube und die Türen öffnen lassen sollen, oder aber weniger Objekte nutzen wenn die Türen und Haube sich nicht öffen lassen müssen.
Du musst jetzt aber nicht alles 2Mal bauen, denn Unity kann Objekte, die das Selbe Material haben auch automatisch zusammen fassen wenn sie static sind. Das nennt sich static batching: https://docs.unity3d.com/Manual/static-batching.html

Diese Dinge kosten etwas mehr CPU Leistung, aber die GPU wird dadurch entlastet.

Ansonsten solltest du immer schauen, dass du so wenig Poygone wie möglich in der Szene hast. Alles nicht bewegliche auf static stellen und evtl. Licht und schatten backen.
Deine Materialien (Shader) sparsam nutzen. Jedes kleine Effektlein kostet einen Durchlauf mehr bei der Berechnung.

Nutze die Stats Anzeige (Oben rechts beim Gameview) um schon einmal zu sehen, was da alles in der Szene los ist.
Nutze den Profiler um genauere Leistungsanzeigen zu sehen. 

Das wars erstmal von mir. :)

 

 

@malzbie 

 

Danke für deine Ausführliche Antwort 😃

das mit dem Occlusion Culling werde ich dann mal ausprobieren und berichten ob es was gebracht hat.

es gibt ja auch noch die Möglichkeit von SpaceWarp auf der Quest 2 zu benutzen was bis zu 70% mehr Leistung bringen soll.

Wie geschrieben ich bin leider noch Anfänger und muss mich erst etwas in die Materie rein Arbeiten.

Gibt es auch eine Möglichkeit die Shader vor zu berechnen und diese dann als eine Art Textur zu speichern so das sie auf der Quest 2 nicht berechnet werden müssen?

Speziell für die Quest gibt es leider kaum Tutorials. Aber ich habe leider das Problem dadurch das ich Schatten und extra Beleuchtungen komplett abgeschaltet habe um Leistung zu sparen, das weiße Flächen wie Türrahmen oder ähnliches kaum von einer weißen wand zu unterscheiden sind. Und wäre toll wenn es da noch ein paar Trix gäbe die ich leider noch nicht kenne.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 3.6.2022 um 17:59 schrieb VinVenom:

Gibt es auch eine Möglichkeit die Shader vor zu berechnen und diese dann als eine Art Textur zu speichern so das sie auf der Quest 2 nicht berechnet werden müssen?

Ja, man kann Licht und Schatten berechnen/backen. Das geht aber nur bei Objekten die Static sind, also sich nicht mehr im Raum bewegen. Dann gibt es noch Reflection Probes und Light Probes, die dir bei bewegilchen Objekten helfen können. Das alles kann ich nicht auf die Schnelle erklären, weil das ein großes Feld ist. Schau dir dazu mal die Dukumentation von Unity an und such mal nach Tutorials.

Ein Material/Shader aber komplett vorzuberechnen geht so nicht, denn du willst dich ja in der Szene bewegen. Du musst halt schauen was für einen Shader du nutzen willst.
Es gibt ganz einfache Shader, die nur den Texturkanal haben nicht glänzen oder spiegeln. Es gibt die Unlit Shader, die von selbst leuchten, also keine Lichtquelle nutzen. Dann kannst du sagen ob sie Schatten empfangen sollen oder nicht und ob sie schatten werfen oder nicht. Und noch vieles mehr.

Übrigens: Die Quest berechnet das nicht. Sie zeigt es nur an. Das sind einfach nur 2 Kameras, die beide in einer gewissen Auflösung das Bild für deine 2 Guckeäugelchen aufnehmen und auf die 2 internen Monitore geben. Es wird also doppelt soviel Info verarbeitet und erzeugt, als wenn du mit einem normalen Monitor, der selben Auflösung das Spiel spielen würdest.
Deswegen ist die Anzahl der Objekte und Polygone so wichtig. Und das wird dann mit den Lichtquellen Schattenwerfern und Shadereffekten nochmals multipliziert.
Also Backe dein Licht und deinen Schatten und sei sparsam mit den Polygonen, Objekten und Effekten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...
Am 5.6.2022 um 15:00 schrieb malzbie:

Ja, man kann Licht und Schatten berechnen/backen. Das geht aber nur bei Objekten die Static sind, also sich nicht mehr im Raum bewegen. Dann gibt es noch Reflection Probes und Light Probes, die dir bei bewegilchen Objekten helfen können. Das alles kann ich nicht auf die Schnelle erklären, weil das ein großes Feld ist. Schau dir dazu mal die Dukumentation von Unity an und such mal nach Tutorials.

Ein Material/Shader aber komplett vorzuberechnen geht so nicht, denn du willst dich ja in der Szene bewegen. Du musst halt schauen was für einen Shader du nutzen willst.
Es gibt ganz einfache Shader, die nur den Texturkanal haben nicht glänzen oder spiegeln. Es gibt die Unlit Shader, die von selbst leuchten, also keine Lichtquelle nutzen. Dann kannst du sagen ob sie Schatten empfangen sollen oder nicht und ob sie schatten werfen oder nicht. Und noch vieles mehr.

Übrigens: Die Quest berechnet das nicht. Sie zeigt es nur an. Das sind einfach nur 2 Kameras, die beide in einer gewissen Auflösung das Bild für deine 2 Guckeäugelchen aufnehmen und auf die 2 internen Monitore geben. Es wird also doppelt soviel Info verarbeitet und erzeugt, als wenn du mit einem normalen Monitor, der selben Auflösung das Spiel spielen würdest.
Deswegen ist die Anzahl der Objekte und Polygone so wichtig. Und das wird dann mit den Lichtquellen Schattenwerfern und Shadereffekten nochmals multipliziert.
Also Backe dein Licht und deinen Schatten und sei sparsam mit den Polygonen, Objekten und Effekten.

Danke für deine kurze Erklärung, mein Problem ist das mein Projekt schon zu groß ist, und die Quest 2 trotz keiner Effekte teilweise in die knie geht von den FPS.

Mein Projekt ist ein Automobil Museum, und die Quest 2 Hängt sich komplett auf wenn ich nur ein Auto was aus mehreren 1000 Polygon besteht in das Projekt stelle.

Ich werde versuchen eine Low Version für die Quest 2 in Unity zu erstellen, vielleicht kann ich mit SpaceWarp etwas mehr FPS rauskitzeln, aber werde wohl auch noch eine Grafisch aufgebohrte Version erstellen, diese werde ich aber wahrscheinlich mit Unreal 5 machen weil es da doch etwas mehr Möglichkeiten wie bei Unity gibt. 

 

Update: 

 

Ich hab jetzt mal etwas mit dem Occlusion Culling rum probiert, und das hilft wirklich das die Quest 2 nicht so schnell in die knie geht.

Ich hab mich jetzt noch nicht so in die tiefe eingearbeitet aber gibt es da auch eine Möglichkeit den Kamera Winkel weiter zu begrenzen, oder Nebel einzufügen der die Sichtweite beschränkt? 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich verstehe gar nicht, warum die Quest sich aufhängt. Das ist doch eigentlich nur ein Anzeigegerät, oder habe ich da was verpasst.
Es ist ja so, dass die Quest im Endeffekt 2 hochauflösende Monitore sind. Es werden 2 Bilder über 2 Kameras erzeugt, die deine Augen simulieren und somit Stereo-Sehen ermöglichen. Da das alles Mal 2 ist, ist natürlich die Menge der berechneten Daten doppelt so groß wie am normalen Monitorl. Und irgendwann macht die Garffikkarte dann dicke Backen.
Aber aufhängen sollte sich das System eigentlich nicht. Ich habe jedoch keine Erfahrung mit der Quest.

Trotzdem. Es gilt so wenig Polygone wie möglich in der Szene zu haben und die Drawcalls so gering wie möglich zu halten. Das gilt immer, egal ob mit Quest oder ohne.
Ein Nebel wird nicht viel helfen, denn der ist meist eine Nachbearbeitung des Bildes, also en Post-Effekt. Die Polygone sind dann schon berechnet.

Was du aber machen kannst, ist LOD (Level of Detail) zu nutzen. Dabei brauchst du aber vom den Objekten mehrere Versionen, je nach dem wie viele Detailstufen du nutzen willst, sind es mehr oder weniger. Der Sinn dahinter ist der, dass ein weiter entferntes Objekt mit viel weniger Polygonen dargestellt wird, als das nahe Objekt. Weit entfernte Objekte sind kleiner zu sehen und die Details sind meist nicht mehr zu erkennen, deswegen kann man sie auch weg lassen. Je weiter das Objekt weg ist, umso weniger Polygone braucht man und das weiteste noch sichtbare Objekt kann dann sogar ein Bilboard sein, also einfach eine Fläche mit Foto des Objektes. Das wird z.B. in all den Spielen so gemacht, die viel Landschaft zu sehen haben.
Sind die LOD-Stufen zu gering gewählt, sieht man meist ein Aufploppen der Objekte. Sind es ausreichend Stufen, fällt das nicht auf.
Das ist natürlich viel Arbeit.

Das Sichtfeld der Kameras zu verringer macht eigentlich keinen Sinn, weil dann die Immersion eingeschränkt wird. Aber von der Logik her ist ein kleineres Bild  oder ein Bild in geringerer Auflösung immer schneller zu berechnen, als ein hochauflösendes, großes Bild. Das ist ja genau Teil deines Problems. Du hast doppel so viele Pixel, wie der Normalo an seinem Monitor, weil du 2 Bilder berechnen musst.

Ich würde dir empfehlen einfach mal raus zu kriegen, wieviele Polygone denn da sein dürfen bis du auf deinem System Leistungseinbußen bemerkst. Also legst du immer neue Objekte mit durchschnittlichen Materialen/Shadern in dein Sichtfeld und guckst mal ab wann es einbricht.
Diese Anzahl der Polygone ist dann deine Referenz, unter der du drunter bleiben musst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 14.6.2022 um 10:32 schrieb malzbie:

Ich verstehe gar nicht, warum die Quest sich aufhängt. Das ist doch eigentlich nur ein Anzeigegerät, oder habe ich da was verpasst.
Es ist ja so, dass die Quest im Endeffekt 2 hochauflösende Monitore sind. Es werden 2 Bilder über 2 Kameras erzeugt, die deine Augen simulieren und somit Stereo-Sehen ermöglichen. Da das alles Mal 2 ist, ist natürlich die Menge der berechneten Daten doppelt so groß wie am normalen Monitorl. Und irgendwann macht die Garffikkarte dann dicke Backen.
Aber aufhängen sollte sich das System eigentlich nicht. Ich habe jedoch keine Erfahrung mit der Quest.

Trotzdem. Es gilt so wenig Polygone wie möglich in der Szene zu haben und die Drawcalls so gering wie möglich zu halten. Das gilt immer, egal ob mit Quest oder ohne.
Ein Nebel wird nicht viel helfen, denn der ist meist eine Nachbearbeitung des Bildes, also en Post-Effekt. Die Polygone sind dann schon berechnet.

Was du aber machen kannst, ist LOD (Level of Detail) zu nutzen. Dabei brauchst du aber vom den Objekten mehrere Versionen, je nach dem wie viele Detailstufen du nutzen willst, sind es mehr oder weniger. Der Sinn dahinter ist der, dass ein weiter entferntes Objekt mit viel weniger Polygonen dargestellt wird, als das nahe Objekt. Weit entfernte Objekte sind kleiner zu sehen und die Details sind meist nicht mehr zu erkennen, deswegen kann man sie auch weg lassen. Je weiter das Objekt weg ist, umso weniger Polygone braucht man und das weiteste noch sichtbare Objekt kann dann sogar ein Bilboard sein, also einfach eine Fläche mit Foto des Objektes. Das wird z.B. in all den Spielen so gemacht, die viel Landschaft zu sehen haben.
Sind die LOD-Stufen zu gering gewählt, sieht man meist ein Aufploppen der Objekte. Sind es ausreichend Stufen, fällt das nicht auf.
Das ist natürlich viel Arbeit.

Das Sichtfeld der Kameras zu verringer macht eigentlich keinen Sinn, weil dann die Immersion eingeschränkt wird. Aber von der Logik her ist ein kleineres Bild  oder ein Bild in geringerer Auflösung immer schneller zu berechnen, als ein hochauflösendes, großes Bild. Das ist ja genau Teil deines Problems. Du hast doppel so viele Pixel, wie der Normalo an seinem Monitor, weil du 2 Bilder berechnen musst.

Ich würde dir empfehlen einfach mal raus zu kriegen, wieviele Polygone denn da sein dürfen bis du auf deinem System Leistungseinbußen bemerkst. Also legst du immer neue Objekte mit durchschnittlichen Materialen/Shadern in dein Sichtfeld und guckst mal ab wann es einbricht.
Diese Anzahl der Polygone ist dann deine Referenz, unter der du drunter bleiben musst.

Ich lasse mein Projekt direkt auf der Quest 2 laufen und nicht auf einem PC. Wenn ich es auf meinem PC Laufenlassen würde könnte ich in die vollen gehen.

 

Aber die Quest 2 ist ein sogenanntes standalone VR Headset, das heißt sie hat eine eigene Hardware und kann unabhängig von einem PC genutzt werden.

Sie verfügt über einen Snapdragon  XR2 der basiert auf einem 865 und hat ein LCD das Pro Auge eine Auflösung von 1832x1920 bei 60-120 Hz kann. 

Betriebssystem ist ein Angepasstes Android, kurz um im Prinzip steckt eine Handy Hardware die mit 4 Kameras die Umgebung tracken kann wodurch du keine externen Sensoren brauchst darin.

Mann kann sie aber auch über ein Link Kabel als PC VR Brille benutzen. Momentan eigentlich die VR Brille mit dem besten preis-leistungsverhältnis, du kannst sie aber wegen dem Facebook zwang nicht in Deutschland kaufen.

Aber du verstehst jetzt sicher das ich bei der Hardware da etwas eingeschränkter bin wie bei einem PC deswegen muss ich da leider vieles weg lassen. 

Und ich muss zugeben ich habe bisher noch kein PC Unity Projekt entwickelt, ich hab gleich mit einem Quest Projekt angefangen.

 

Hier mal ein Video zu meinem ersten Versuchs Projekt, da ist die Quest allein schon durch die Hecke die viele Polygon hatte in die knie gegangen, was du auch im Video sehen kannst.

 

Mein Aktuelles Projekt ist aber um einiges größer.

 

zu LOD hab ich noch eine Frage, muss ich das bei Unity selbst machen, also wie du beschrieben hast alle Objekte selbst in verschiedenen Detail Stufen erstellen und einfügen oder kann Unity ähnlich wie Unreal auch automatisch die Objekte umrechnen mit weniger Details und Polygone?

Momentan läuft mein Projekt ja schon flüssiger als im schlimmsten fall befürchtet. Aber ich möchte natürlich das Maximum was möglich is heraus holen, und alle trix und Kniffe von Unity kenne ich ja auch noch nicht.

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ah, jetzt verstehe ich's. Da hast du was vor.
Ich haue jetzt ersteinmal ein paar Links aus der Dokumentation für dich rein:

LOD: https://docs.unity3d.com/Manual/LevelOfDetail.html

Graphics Performance: https://docs.unity3d.com/Manual/graphics-performance-profiling.html

Render Pipelines: https://docs.unity3d.com/Manual/render-pipelines.html

Jetzt zu den Links ein wenig Text:

LOD ist klar, denn da findest du die Infos, wie es funktioniert und wie es eingestellt wird. Unity hilft dir bei der Erzeugung der Meshes leider nicht. Die Objekte musst du selber in einem 3D Programm deiner Wahl erstellen und via FBX nach unity bringen. Hast du die Dateien aber richtig benannt, baut unity dir dann gleich eine LOD Gruppe zusammen.

Bei Graphics Performance geht es natürlich darum, was wieviel Leistung kostet und wie du das Ganze optimieren kannst. Gerade bei den Drawcalls kann man viel einsparen, wenn man weiß, wo man schrauben muss.
Hier ist noch so ne Art Tutorial, welches dir helfen könnte. https://learn.unity.com/tutorial/optimizing-graphics-in-unity#

Bei Render Pipelines geht es um die unterschiedlichen Renderer, denn Unity hat 3! Ich würde dir empfehlen, falls du es nicht schon eingestellt hast, dass du auf die URP (Universal Render Pipeline) wechselst. Die ist gerade für leistungsschwache Geräte optimiert. Da kommst du garnicht erst in Versuchung, irgendwelche Dinge zu nutzen, die das System überlasten.

Jetzt noch zu deiner Hecke. Die ist natürlich ein Klopper! So wie ich es sehe, hast du da jede Menge Flächen, die alle teilweise transparente Grafiken drauf haben. Also ausgestanzte Blätter und Äste. Das ist nicht gut, denn diese überlagernden Transparenzen kosten viel Leistung. Muss es eine Hecke sein? Geht nicht auch ein Zaun?

Du musst leider deine Erwartungen etwas runter schrauben. Und du musst dich langsam hoch tasten. Nimm die Hecke ersteinmal komplett aus der Szene raus und baue die wichtigsten Dinge.  Nutze die Stats die du oben im Gameview ein- und ausblenden kannst: https://docs.unity3d.com/Manual/RenderingStatistics.html

Nutze dann noch den Profiler um in die Details zu gehen. https://docs.unity3d.com/Manual/Profiler.html

Der Profiler ist nicht so leicht zu verstehen, weil er dich mit Infos erschlägt. Den kannst du auch erst einmal ignorieren. Die Stats zeigen dir schon recht gut, was da los ist.

Tja. Für leistungsarme Geräte zu bauen ist schon nicht leicht, wenn es dann auch noch VR ist, ist es doppelt so schwer.

Jetzt hast du erst einmal was zu lesen. Mit all diesen Schlagwörtern findest du bestimmt auch gute Tuts bei Youtube.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@malzbie

Danke für die Links, und für deine Tipps bin ich dir sehr Dankbar 😃

Ich bin grade noch voll im Level Design, weil ich vor ein paar tagen spontan entschieden habe das Level für eine bessere Immersion enorm zu erweitern... denn die ursprüngliche Idee war es das Hauptgebäude mit einer Fotowand zu begrenzen, nur leider sah das alles andere als gut aus, weswegen ich mich dafür entschieden habe im umkreis von 200-300m alle Gebäude auch noch grob nach zu bauen. Mein aktuelles Projekt kann ich aber noch nicht zeigen, da es sich um ein bekanntes Gebäude handelt, da ich nicht möchte das es im Internet die runde macht.

Also das im Video oben war nur mein erster versuch in Unity. Da hatte ich ein Haus gebaut was ich später auch komplett möbliert hatte, und die Hecke war nur ein versuch, ich hatte die Ecke am ende wieder rausgeschmissen und einfach nur eine Mauer mit einer Textur drauf in das Projekt damit lief das ganze dann flüssig. Aber das damals war nur ein Einfamilienhaus mit Garten.

Hier nochmal ein Video wie das Fertige Projekt ungefähr aussah.

 

Mein Aktuelles Projekt ist aber ungefähr 300 mal so groß, allein das Hauptgebäude ist da ein vielfaches größer und hat 5 Etagen die man alle begehen kann und die alle teilweise mit vielen Gegenständen eingerichtet sind. z.b hab ich in einer Szene 20 Stühle wo ein Stuhl ca. 40.000 Polygone hat. Das ist momentan der einzige Bereich wo die Quest 2 leicht in die knie geht wenn ich alle Stühle plus Umgebung mit anderen Objekten in der Kamera habe, aber vielleicht kann ich da was mit LOD machen. Ich werde versuchen mich die nächsten tage etwas darin ein zu arbeiten, und kann ja weiter hier berichten.

Da gibt es auch einen Fahrstuhl, wo ich noch nicht geschaut habe ob es da schon fertige Skripts mit Animationen gibt das ich den Fahrstuhl auch funktionsfähig bekomme.

Diesmal wollte ich versuchen ein paar Sachen besser zu machen, in meinem ersten Projekt bist du auch einfach durch Türen durch gelaufen, wie du im Video sehen kannst. Aber diesmal wollte ich schauen das sich Türen öffnen und schließen lassen, dafür sollte es sicher Tutorials geben wie man sowas in Unity hin bekommt.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hatte mir das Video vor ein paar Tagen schon mal angeschaut. Das ist schonmal ganz gut. Ohne Licht und Schatten fehlt natürlich was.
Aber das kannst du ja backen, es muss also nicht in Echtzeit berechnet werden.
Das solltest du eh erst später rein tun, wenn dein Projekt zufriedenstellend läuft.

Was ich da über die Stühle gelesen habe, hat mich aufgeschreckt. Huch! 40.000 Polygone!
Da kannst und musst du optimieren! Ich weiß zwar nicht was das für fancy Dinger sind, aber mehr als 5000 Polys würde ich einem "Stuhl" niemals geben. In einem modernen Spiel hat ein Stuhl vielleicht 100-500 Polygone. Gut, die sind da nur Beiwerk und nicht für die Visualisierung da. Trotzdem. Da musst du ran!

Fahrstuhl und Türen kann man recht schnell in Unity animieren. Oder aber über die Transformkomponente per code drehen oder bewegen. Da findest du ganz viel im Netz.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 weeks later...
Am 20.6.2022 um 13:28 schrieb malzbie:

Ich hatte mir das Video vor ein paar Tagen schon mal angeschaut. Das ist schonmal ganz gut. Ohne Licht und Schatten fehlt natürlich was.
Aber das kannst du ja backen, es muss also nicht in Echtzeit berechnet werden.
Das solltest du eh erst später rein tun, wenn dein Projekt zufriedenstellend läuft.

Was ich da über die Stühle gelesen habe, hat mich aufgeschreckt. Huch! 40.000 Polygone!
Da kannst und musst du optimieren! Ich weiß zwar nicht was das für fancy Dinger sind, aber mehr als 5000 Polys würde ich einem "Stuhl" niemals geben. In einem modernen Spiel hat ein Stuhl vielleicht 100-500 Polygone. Gut, die sind da nur Beiwerk und nicht für die Visualisierung da. Trotzdem. Da musst du ran!

Fahrstuhl und Türen kann man recht schnell in Unity animieren. Oder aber über die Transformkomponente per code drehen oder bewegen. Da findest du ganz viel im Netz.

 

Ich hab schon länger nicht hier rein geschaut, war in letzter zeit mit Level design beschäftigt.

Gibt es ein Tutorial was das backen von Schatten und Lichteffekten gut erklärt was du empfehlen kannst?

 

Ich hab nochmal einige dinge Optimiert, die Stühle hatte ich nicht selbst gemacht, aber ich habe sie in ihren Polys Massiv reduziert unter 2000 Polys, dadurch läuft es schon um einiges besser.

Ich muss noch das Level design abschließen und dann muss ich mich mal intensiver mit den Unity Optimierungen auseinandersetzen. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...