Jump to content
Unity Insider Forum
Sugarbaby

Performance ruckelt

Recommended Posts

Hi,

Inzwischen bin ich ziemlich voran gekommen.

Meine 3d-Visualisierung für eine Cardboardpresentation eines Messestands nimmt Formen an. Texturen sind eingearbeitet. Die Animation des Industrie Roboters läuft. HDRI ist als Umgebung und Licht mit drin...

Das Problem, vor dem ich stehe ist: es ruckelt beim umsehen.

Die Anwendung für´s Android-Handy ist ca. 66 MB groß. Am Prozessor des Handys sollte es nicht liegen. Es hat 4 GB RAM und einen Octacore Max 1,8 Hz Prozessor. 48 GB verfügbar.

Wo kann ich feinjustieren? Texturen verkleinern? Kompressionen aktivieren, wenn Ja, welche?

P.S.: Der Profiler...nutzt der mir was in dem Zusammenhang?

Cheers, SB

Optimierung.jpg

Share this post


Link to post
Share on other sites
vor 3 Stunden schrieb Sugarbaby:

Der Profiler...nutzt der mir was in dem Zusammenhang?

Ja. Du kannst einen Development Build auf Android laden und den Profiler damit über Netzwerk verbinden.

Die Schwachstelle bei Smartphones ist in der Regel der Grafikchip. Deshalb ist besonderes Augenmerk zu legen auf Polygonzahl und die Menge an Draw Calls. Meiner Erfahrung nach sind Handys darüber hinaus noch einmal etwas anfälliger für Performance-Einbuße durch große Polygone (also so, dass sie größer dargestellt werden als der Bildschirm) und viel Overdraw.

Share this post


Link to post
Share on other sites

Danke, Sascha, für den Tipp!

Bin´ allerdings noch nicht dazu gekommen, mich hier einzugrooven...mach ich als Nächstes.

Dadurch, dass ich das Umgebungs-HDRI verkleinert habe auf 2096px Auflösung, ist die Ausbabe-Dateigröße der .apk um ein Drittel auf 40 mb geschrumpft. Ruckeln tut es noch genau so. Da kann ich allerdings noch keinen wirklichen Schluß daraus ziehen...

Ich probiere jetzt auch noch einmal die anderen Kompressionsverfahren () aus, und sehe zu, was sich da tut um eine flüssigere Darstellung zu erreichen...

Share this post


Link to post
Share on other sites

Äh... Du weißt aber, dass die Größe der APK keinen EInfluss auf die Framerate hat, oder? Und Komprimierungsverfahren helfen nur bei Ladezeiten, oder am anderen Ende des Spektrums eben bei Downloadzeiten des Spiels. Am Ende wird alles unkomprimiert in den (Grafik-)Speicher geladen.

Was ich in der Liste noch vergessen habe, sind Texturgrößen. 1024px² ist nur für Oberklasse-Smartphones okay, und bei VR wäre ich da auch vorsichtig.

Share this post


Link to post
Share on other sites
Am 4.1.2019 um 19:23 schrieb Sascha:

Am Ende wird alles unkomprimiert in den (Grafik-)Speicher geladen.

Stimmt nicht, Formate wie DXT liegen auch komprimiert im Grafikspeicher, genau dafür sind solche Formate gemacht.

Share this post


Link to post
Share on other sites

Hm... heißt das, dass die GPU tatsächlich bei jedem GPU Lookup noch einmal Extraarbeit leisten muss?

E: Aber ja, habe gerade mal nachgelesen. Lernste immer mal was Neues - hätte ich nicht gedacht. Dank dir!

@Sugarbaby Solltest du aber trotzdem nicht mit übertreiben. "Kleiner im VRAM" heißt keineswegs automatisch "schneller zu rendern".

Share this post


Link to post
Share on other sites

DXT Komprimierung probiere ich aus...

Es ruckelt immer noch: Ich habe mir jetzt einen abgebrochen, verschiedene Stellschrauben zu modifizieren.Texturen, Animation, Filmclip auf nem´ Screen - alles habe ich komprimiert.

Hauptproblematik vielleicht: Stelle ich in den Qualität Settings das AA auf "Disabled", läuft das Ganze flüssig - der animierte Roboter, der Clip, das umhersehen...Alles gut. Bis auf das ausfransen der virtuellen Objekte. Das ist Mist!

Stelle ich, um das "treppen" abzumildern, AA von  "disabled" auf "2x Multi Sampling" kommen Roboter, Animation, Look around in grobes stottern.

In den Qualtysettings hat selbst das zweitschlechteste Qualitylevel "Low" ein 8faches MultiSampling....hmmmm´...

Was könnte ich noch tun? Ne´ Idee, Jemand...

Cheers, SB

 

Share this post


Link to post
Share on other sites

Mehr Informationen über die Szene, wäre nicht schlecht gewesen. Wieviel Tris und Batches hat deine Szene? Einfach "Stats" Button über der Szene anklicken, dann sieht man das schon :)

Wieviel Leuchtquellen hast du? Wieviel FPS hast du, ruckelt es ständig, oder nur wenn Kamera auf bestimmtes Objekt gedreht wird? Welche Auflösung haben die Texturen?

Und was für GPU hat dein mobiles Gerät, oder wenigstens was für Marke und Modell? :)

Benutzt du  die LWRP oder standart Pipeline? Trotz der angeblich für Mobile Geräte optimierte Pipeline, habe mit LWRP nur schlechte Erfahrungen gemacht. Ich habe praktisch überall deutlich weniger FPS mit der Pipiline, trotz ausgeschalteten AA. Und wenn ich noch Post Processing Bloom verwende, dann wirds nochmals viel schlimmer. So habe ich z.B in einer fast leeren Szene mit Standart Pipeline und Post Processing Bloom 39 FPS und die selbe Szene mit LWRP und Post Processing bloom nur 27 FPS auf einem Adreno 510 GPU Smartphone, was eigentlich noch mittelmässig ist.

 

Share this post


Link to post
Share on other sites

Hi und Danke für´s einmischen...

Stats-Screenshot s. u./ 1Leuchtquelle/ Texturen runtergerechnet mit "Override for Android"/ja, ruckelt ständig (wenn AA in den Qualitysettings eingestellt ist - andernfalls sind die Kanten echt sägeblattartig)

FPS: laut Stats um die 110.

Gerät: Xiaomi Redmi Note 5 6 Zoll: 4 GB RAM/Octacore Max 1,8 Hz Prozessor. 48 GB verfügbar.  GPU:Qualcomm Adreno 506

 

In der Szene: 1 Industrieroboteranimation/1 Screen mit einem Film im Loop/ Sounddatei Stimmengewirr und Robotergeräusche

 

Pipeline: Die Standard Pipeline.

 

 

 

unity stats.jpg

Share this post


Link to post
Share on other sites

Über eine Millionen Tris sind für ein Smartphone Spiel viel zu viel, erst recht für eine VR Anwendung..

Besonders, weil deine Objekte im Screenshot nicht sehr highpoly aussehen. Ich schätze dein Roboterarm macht davon einen großen Teil aus.

 

Ist nicht ganz mein Gebiet, aber ich glaube ~2,5k Batches sind auch sehr viel. Wenn du mal nach "unity batches reduzieren" googelst, solltest du einiges finden, wie du die reduzieren kannst.

Share this post


Link to post
Share on other sites

Hast echt zu viel Tris und Batches, sogar für aktuelle highend mobile Geräte ist das noch zu viel. Vor allem, wenn du noch in der Zukunft deine Szene verschönern willst, durch weitere Lichtquellen, Post Processing ect. wirds sehr problematisch. Wie schon oben geschrieben, kannst du Batches reduzieren in dem du Objekte gleichen Textur und Material zu einem Mesh kombinierst. Polygone lassen sich auch oft ohne großen Qualität Verlust entfernen. Stell sicher, dass bei dir bei der Kamera auch Occlusion Culling aktiviert ist.

AA wirkt leider sehr auf Performance aus. Ansonsten kannst du über Post-Process versuchen mit FXAA bischen zu glätten, sieht vielleicht ein bischen schöner aus, ohne starken Performance Verlust.

fxaa.png.b2845e3a4aa29a6869d8ec3b24628d77.png

Share this post


Link to post
Share on other sites

Komm´ gerade nicht zum reduzieren. Sry. Aber Danke Euch für die Tipps und KnowHow. Melde´ mich, wenn ich´s probiert habe.

Bin gerade dabei endlich eine WalkThrough-Cam hinzubekommen...grmpfl....

SB

Share this post


Link to post
Share on other sites

Um die draw calls zu verringern würde ich auch versuchen soviel statische objekte wie möglich zusammen zu fügen, am besten die draw calls auf unter 100 reduzieren, wobei das wahrscheinlich auch noch zu viel ist. Auf meinem galaxy s5 ruckelt es auch bei 30k tries und 40 draws 😁

 

Share this post


Link to post
Share on other sites

Danke!

Wie fügt man die statischen Objekte denn zusammen? Und senkt das dann "von selbst" die draw calls?

Neben dem Roboter hat höchstens noch der zylindrische DisplayTisch viele Polygone. Das Andere sind Alles "Kisten". (Allerdings aus c4d importiert, sollte das auch noch einen signifikanten Unterschied machen...)

SB

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×